Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
6644252
test with python 3.12.6
jonathanhe-msft Oct 7, 2024
9029daa
Merge branch 'main' of https://github.com/jonathanhe-msft/azure-cli-e…
jonathanhe-msft Jan 30, 2025
c6ec21e
Merge remote-tracking branch 'upstream/main'
jonathanhe-msft Feb 4, 2025
69ef803
Merge remote-tracking branch 'upstream/main'
jonathanhe-msft Feb 6, 2025
0f5d84d
Merge remote-tracking branch 'upstream/main'
jonathanhe-msft Feb 27, 2025
5c67357
Merge branch 'main' of https://github.com/Azure/azure-cli-extensions
jonathanhe-msft Jun 9, 2025
702b19f
addons
jonathanhe-msft Jun 10, 2025
a52ce33
authorization
jonathanhe-msft Jun 10, 2025
81cae81
cloud link
jonathanhe-msft Jun 10, 2025
4c0e961
cluster
jonathanhe-msft Jun 10, 2025
d18d860
host
jonathanhe-msft Jun 10, 2025
92294be
pure storage
jonathanhe-msft Jun 10, 2025
aa5c1a8
global reach
jonathanhe-msft Jun 11, 2025
6d72e63
hcx enterprise site
jonathanhe-msft Jun 11, 2025
1a16dba
iscsi path
jonathanhe-msft Jun 11, 2025
26d5162
location
jonathanhe-msft Jun 11, 2025
2269912
placement policy
jonathanhe-msft Jun 11, 2025
8e92ba1
private cloud
jonathanhe-msft Jun 11, 2025
be26d6b
provisioned networks
jonathanhe-msft Jun 12, 2025
9fd5b73
script execution
jonathanhe-msft Jun 12, 2025
f6886f7
pure storage policy
jonathanhe-msft Jun 12, 2025
f11dc9e
skus
jonathanhe-msft Jun 12, 2025
4862377
vm
jonathanhe-msft Jun 12, 2025
6d60e49
workload networks
jonathanhe-msft Jun 12, 2025
3aafe8d
style
jonathanhe-msft Jun 13, 2025
dc9401f
final test run through
jonathanhe-msft Jun 13, 2025
9418bee
bump version
jonathanhe-msft Jun 13, 2025
3cb75bc
linter
jonathanhe-msft Jun 15, 2025
2fd8f21
Merge branch 'main' of https://github.com/Azure/azure-cli-extensions …
jonathanhe-msft Jun 15, 2025
4790530
test recordings
jonathanhe-msft Jun 15, 2025
2febb0e
lint and style
jonathanhe-msft Jun 16, 2025
bb9b6d6
linter again
jonathanhe-msft Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions src/vmware/HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Release History

## 8.0.0 (2025-07)

- Bump minimum required Az CLI version to `2.70.0`
- Upgrade default API version from `2023-09-01` to `2024-09-01`
- Add `--management-network` and `--uplink-network` to `az vmware addon hcx create` and `az vmware addon hcx update`
- Add `--zones` to `az vmware private-cloud create`
- Add `az vmware script-execution get-execution-log` command
- Add `az vmware cluster host` command group
- Add `az vmware datastores pure-storage-volume` command group
- Add `az vmware provisioned-network` command group
- Add `az vmware pure-storage-policy` command group
- Add `az vmware skus` command group
- [BREAKING CHANGE] Remove `--nsxt-password` and `--vcenter-password` as parameters for `az vmware private-cloud create` and `az vmware private-cloud update`

## 7.2.0 (2025-02)

- Bump minimum required Az CLI version to `2.67.0`
Expand Down
13 changes: 13 additions & 0 deletions src/vmware/azext_vmware/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,19 @@
text: az vmware datastore elastic-san-volume create --name ElasticSANDatastore --resource-group MyResourceGroup --cluster Cluster-1 --private-cloud MyPrivateCloud --elastic-san-volume elasticsan
"""

helps['vmware datastore pure-storage-volume'] = """
type: group
short-summary: Manage Pure Storage volume resource.
"""

helps['vmware datastore pure-storage-volume create'] = """
type: command
short-summary: Create a Pure Storage volume in a private cloud cluster using PureStorage.Block provider.
examples:
- name: Create a new PureStorage.Block provided Pure Storage volume based datastore.
text: az vmware datastore pure-storage-volume create --name PureStorageDatastore --resource-group MyResourceGroup --cluster Cluster-1 --private-cloud MyPrivateCloud --storage-pool-id "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/ResourceGroup1/providers/PureStorage.Block/storagePools/storagePool1" --size-gb 64
"""

helps['vmware datastore show'] = """
type: command
short-summary: Show details of a datastore in a private cloud cluster.
Expand Down
28 changes: 23 additions & 5 deletions src/vmware/azext_vmware/aaz/latest/vmware/addon/_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ class Create(AAZCommand):
"""

_aaz_info = {
"version": "2023-09-01",
"version": "2024-09-01",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2023-09-01"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2024-09-01"],
]
}

Expand Down Expand Up @@ -90,11 +90,19 @@ def _build_arguments_schema(cls, *args, **kwargs):
)

hcx = cls._args_schema.hcx
hcx.management_network = AAZStrArg(
options=["management-network"],
help="HCX management network.",
)
hcx.offer = AAZStrArg(
options=["offer"],
help="The HCX offer, example VMware MaaS Cloud Provider (Enterprise)",
required=True,
)
hcx.uplink_network = AAZStrArg(
options=["uplink-network"],
help="HCX uplink network",
)

srm = cls._args_schema.srm
srm.license_key = AAZStrArg(
Expand Down Expand Up @@ -195,7 +203,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand All @@ -220,7 +228,7 @@ def content(self):
typ=AAZObjectType,
typ_kwargs={"flags": {"required": True, "client_flatten": True}}
)
_builder.set_prop("properties", AAZObjectType)
_builder.set_prop("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}})

properties = _builder.get(".properties")
if properties is not None:
Expand All @@ -239,7 +247,9 @@ def content(self):

disc_hcx = _builder.get(".properties{addonType:HCX}")
if disc_hcx is not None:
disc_hcx.set_prop("managementNetwork", AAZStrType, ".hcx.management_network")
disc_hcx.set_prop("offer", AAZStrType, ".hcx.offer", typ_kwargs={"flags": {"required": True}})
disc_hcx.set_prop("uplinkNetwork", AAZStrType, ".hcx.uplink_network")

disc_srm = _builder.get(".properties{addonType:SRM}")
if disc_srm is not None:
Expand Down Expand Up @@ -275,7 +285,9 @@ def _build_schema_on_200_201(cls):
_schema_on_200_201.name = AAZStrType(
flags={"read_only": True},
)
_schema_on_200_201.properties = AAZObjectType()
_schema_on_200_201.properties = AAZObjectType(
flags={"client_flatten": True},
)
_schema_on_200_201.system_data = AAZObjectType(
serialized_name="systemData",
flags={"read_only": True},
Expand All @@ -300,9 +312,15 @@ def _build_schema_on_200_201(cls):
)

disc_hcx = cls._schema_on_200_201.properties.discriminate_by("addon_type", "HCX")
disc_hcx.management_network = AAZStrType(
serialized_name="managementNetwork",
)
disc_hcx.offer = AAZStrType(
flags={"required": True},
)
disc_hcx.uplink_network = AAZStrType(
serialized_name="uplinkNetwork",
)

disc_srm = cls._schema_on_200_201.properties.discriminate_by("addon_type", "SRM")
disc_srm.license_key = AAZStrType(
Expand Down
6 changes: 3 additions & 3 deletions src/vmware/azext_vmware/aaz/latest/vmware/addon/_delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ class Delete(AAZCommand):
"""

_aaz_info = {
"version": "2023-09-01",
"version": "2024-09-01",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2023-09-01"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2024-09-01"],
]
}

Expand Down Expand Up @@ -152,7 +152,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand Down
16 changes: 12 additions & 4 deletions src/vmware/azext_vmware/aaz/latest/vmware/addon/_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ class List(AAZCommand):
"""

_aaz_info = {
"version": "2023-09-01",
"version": "2024-09-01",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons", "2023-09-01"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons", "2024-09-01"],
]
}

Expand Down Expand Up @@ -121,7 +121,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand Down Expand Up @@ -171,7 +171,9 @@ def _build_schema_on_200(cls):
_element.name = AAZStrType(
flags={"read_only": True},
)
_element.properties = AAZObjectType()
_element.properties = AAZObjectType(
flags={"client_flatten": True},
)
_element.system_data = AAZObjectType(
serialized_name="systemData",
flags={"read_only": True},
Expand All @@ -196,9 +198,15 @@ def _build_schema_on_200(cls):
)

disc_hcx = cls._schema_on_200.value.Element.properties.discriminate_by("addon_type", "HCX")
disc_hcx.management_network = AAZStrType(
serialized_name="managementNetwork",
)
disc_hcx.offer = AAZStrType(
flags={"required": True},
)
disc_hcx.uplink_network = AAZStrType(
serialized_name="uplinkNetwork",
)

disc_srm = cls._schema_on_200.value.Element.properties.discriminate_by("addon_type", "SRM")
disc_srm.license_key = AAZStrType(
Expand Down
16 changes: 12 additions & 4 deletions src/vmware/azext_vmware/aaz/latest/vmware/addon/_show.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ class Show(AAZCommand):
"""

_aaz_info = {
"version": "2023-09-01",
"version": "2024-09-01",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2023-09-01"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2024-09-01"],
]
}

Expand Down Expand Up @@ -130,7 +130,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand Down Expand Up @@ -169,7 +169,9 @@ def _build_schema_on_200(cls):
_schema_on_200.name = AAZStrType(
flags={"read_only": True},
)
_schema_on_200.properties = AAZObjectType()
_schema_on_200.properties = AAZObjectType(
flags={"client_flatten": True},
)
_schema_on_200.system_data = AAZObjectType(
serialized_name="systemData",
flags={"read_only": True},
Expand All @@ -194,9 +196,15 @@ def _build_schema_on_200(cls):
)

disc_hcx = cls._schema_on_200.properties.discriminate_by("addon_type", "HCX")
disc_hcx.management_network = AAZStrType(
serialized_name="managementNetwork",
)
disc_hcx.offer = AAZStrType(
flags={"required": True},
)
disc_hcx.uplink_network = AAZStrType(
serialized_name="uplinkNetwork",
)

disc_srm = cls._schema_on_200.properties.discriminate_by("addon_type", "SRM")
disc_srm.license_key = AAZStrType(
Expand Down
32 changes: 26 additions & 6 deletions src/vmware/azext_vmware/aaz/latest/vmware/addon/_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ class Update(AAZCommand):
"""

_aaz_info = {
"version": "2023-09-01",
"version": "2024-09-01",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2023-09-01"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/addons/{}", "2024-09-01"],
]
}

Expand Down Expand Up @@ -95,10 +95,20 @@ def _build_arguments_schema(cls, *args, **kwargs):
)

hcx = cls._args_schema.hcx
hcx.management_network = AAZStrArg(
options=["management-network"],
help="HCX management network.",
nullable=True,
)
hcx.offer = AAZStrArg(
options=["offer"],
help="The HCX offer, example VMware MaaS Cloud Provider (Enterprise)",
)
hcx.uplink_network = AAZStrArg(
options=["uplink-network"],
help="HCX uplink network",
nullable=True,
)

srm = cls._args_schema.srm
srm.license_key = AAZStrArg(
Expand Down Expand Up @@ -196,7 +206,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand Down Expand Up @@ -299,7 +309,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand Down Expand Up @@ -357,7 +367,7 @@ def _update_instance(self, instance):
value=instance,
typ=AAZObjectType
)
_builder.set_prop("properties", AAZObjectType)
_builder.set_prop("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}})

properties = _builder.get(".properties")
if properties is not None:
Expand All @@ -376,7 +386,9 @@ def _update_instance(self, instance):

disc_hcx = _builder.get(".properties{addonType:HCX}")
if disc_hcx is not None:
disc_hcx.set_prop("managementNetwork", AAZStrType, ".hcx.management_network")
disc_hcx.set_prop("offer", AAZStrType, ".hcx.offer", typ_kwargs={"flags": {"required": True}})
disc_hcx.set_prop("uplinkNetwork", AAZStrType, ".hcx.uplink_network")

disc_srm = _builder.get(".properties{addonType:SRM}")
if disc_srm is not None:
Expand Down Expand Up @@ -421,7 +433,9 @@ def _build_schema_addon_read(cls, _schema):
addon_read.name = AAZStrType(
flags={"read_only": True},
)
addon_read.properties = AAZObjectType()
addon_read.properties = AAZObjectType(
flags={"client_flatten": True},
)
addon_read.system_data = AAZObjectType(
serialized_name="systemData",
flags={"read_only": True},
Expand All @@ -446,9 +460,15 @@ def _build_schema_addon_read(cls, _schema):
)

disc_hcx = _schema_addon_read.properties.discriminate_by("addon_type", "HCX")
disc_hcx.management_network = AAZStrType(
serialized_name="managementNetwork",
)
disc_hcx.offer = AAZStrType(
flags={"required": True},
)
disc_hcx.uplink_network = AAZStrType(
serialized_name="uplinkNetwork",
)

disc_srm = _schema_addon_read.properties.discriminate_by("addon_type", "SRM")
disc_srm.license_key = AAZStrType(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ class Create(AAZCommand):
"""

_aaz_info = {
"version": "2023-09-01",
"version": "2024-09-01",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/authorizations/{}", "2023-09-01"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/authorizations/{}", "2024-09-01"],
]
}

Expand Down Expand Up @@ -157,7 +157,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ class Delete(AAZCommand):
"""

_aaz_info = {
"version": "2023-09-01",
"version": "2024-09-01",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/authorizations/{}", "2023-09-01"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.avs/privateclouds/{}/authorizations/{}", "2024-09-01"],
]
}

Expand Down Expand Up @@ -156,7 +156,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-09-01",
"api-version", "2024-09-01",
required=True,
),
}
Expand Down
Loading
Loading