From db4664b21b5e2480156c779a83dc2fc72e374995 Mon Sep 17 00:00:00 2001 From: Jian Hui Date: Mon, 3 Aug 2026 09:14:10 +0800 Subject: [PATCH 1/4] faet: add support for managing interconnect groups and subgroups --- src/interconnect-group/HISTORY.rst | 8 + src/interconnect-group/README.md | 62 ++ .../azext_interconnect_group/__init__.py | 42 ++ .../azext_interconnect_group/_help.py | 11 + .../azext_interconnect_group/_params.py | 13 + .../azext_interconnect_group/aaz/__init__.py | 6 + .../aaz/latest/__init__.py | 10 + .../latest/interconnect_group/__cmd_group.py | 23 + .../aaz/latest/interconnect_group/__init__.py | 17 + .../aaz/latest/interconnect_group/_create.py | 347 +++++++++++ .../aaz/latest/interconnect_group/_delete.py | 142 +++++ .../_get_node_availability.py | 201 +++++++ .../aaz/latest/interconnect_group/_list.py | 435 ++++++++++++++ .../aaz/latest/interconnect_group/_show.py | 264 +++++++++ .../aaz/latest/interconnect_group/_update.py | 551 ++++++++++++++++++ .../subgroup/__cmd_group.py | 23 + .../interconnect_group/subgroup/__init__.py | 13 + .../interconnect_group/subgroup/_list.py | 227 ++++++++ .../interconnect_group/subgroup/_show.py | 225 +++++++ .../azext_metadata.json | 4 + .../azext_interconnect_group/commands.py | 15 + .../azext_interconnect_group/custom.py | 14 + .../tests/__init__.py | 6 + .../tests/latest/__init__.py | 6 + .../test_interconnect_group_crud.yaml | 494 ++++++++++++++++ .../tests/latest/test_interconnect_group.py | 88 +++ src/interconnect-group/setup.cfg | 1 + src/interconnect-group/setup.py | 51 ++ 28 files changed, 3299 insertions(+) create mode 100644 src/interconnect-group/HISTORY.rst create mode 100644 src/interconnect-group/README.md create mode 100644 src/interconnect-group/azext_interconnect_group/__init__.py create mode 100644 src/interconnect-group/azext_interconnect_group/_help.py create mode 100644 src/interconnect-group/azext_interconnect_group/_params.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/__init__.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/__init__.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__cmd_group.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__init__.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_create.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_delete.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_get_node_availability.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_list.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_show.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_update.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/__cmd_group.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/__init__.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/_list.py create mode 100644 src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/_show.py create mode 100644 src/interconnect-group/azext_interconnect_group/azext_metadata.json create mode 100644 src/interconnect-group/azext_interconnect_group/commands.py create mode 100644 src/interconnect-group/azext_interconnect_group/custom.py create mode 100644 src/interconnect-group/azext_interconnect_group/tests/__init__.py create mode 100644 src/interconnect-group/azext_interconnect_group/tests/latest/__init__.py create mode 100644 src/interconnect-group/azext_interconnect_group/tests/latest/recordings/test_interconnect_group_crud.yaml create mode 100644 src/interconnect-group/azext_interconnect_group/tests/latest/test_interconnect_group.py create mode 100644 src/interconnect-group/setup.cfg create mode 100644 src/interconnect-group/setup.py diff --git a/src/interconnect-group/HISTORY.rst b/src/interconnect-group/HISTORY.rst new file mode 100644 index 00000000000..84be565f5c6 --- /dev/null +++ b/src/interconnect-group/HISTORY.rst @@ -0,0 +1,8 @@ +.. :changelog: + +Release History +=============== + +1.0.0b1 +++++++ +* Initial release. diff --git a/src/interconnect-group/README.md b/src/interconnect-group/README.md new file mode 100644 index 00000000000..c2621a26201 --- /dev/null +++ b/src/interconnect-group/README.md @@ -0,0 +1,62 @@ +# Azure CLI InterconnectGroup Extension # +This is an extension to Azure CLI to manage InterconnectGroup resources. + +## How to use ## +Install the extension: + +``` +az extension add --name interconnect-group +``` + +### Manage interconnect groups ### + +Create an interconnect group: + +``` +az interconnect-group create --resource-group rg1 --interconnect-group-name test-ig +``` + +Show an interconnect group: + +``` +az interconnect-group show --resource-group rg1 --interconnect-group-name test-ig +``` + +List interconnect groups (in a subscription, or scoped to a resource group): + +``` +az interconnect-group list +az interconnect-group list --resource-group rg1 +``` + +Update an interconnect group: + +``` +az interconnect-group update --resource-group rg1 --interconnect-group-name test-ig +``` + +Delete an interconnect group: + +``` +az interconnect-group delete --resource-group rg1 --interconnect-group-name test-ig +``` + +Get node availability for all subgroups in an interconnect group: + +``` +az interconnect-group get-node-availability --resource-group rg1 --interconnect-group-name test-ig +``` + +### Manage subgroups ### + +List subgroups in an interconnect group: + +``` +az interconnect-group subgroup list --resource-group rg1 --interconnect-group-name test-ig +``` + +Show a subgroup: + +``` +az interconnect-group subgroup show --resource-group rg1 --interconnect-group-name test-ig --subgroup-name subgroup0 +``` diff --git a/src/interconnect-group/azext_interconnect_group/__init__.py b/src/interconnect-group/azext_interconnect_group/__init__.py new file mode 100644 index 00000000000..c34a46b4f37 --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/__init__.py @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +from azure.cli.core import AzCommandsLoader +from azext_interconnect_group._help import helps # pylint: disable=unused-import + + +class InterconnectGroupCommandsLoader(AzCommandsLoader): + + def __init__(self, cli_ctx=None): + from azure.cli.core.commands import CliCommandType + custom_command_type = CliCommandType( + operations_tmpl='azext_interconnect_group.custom#{}') + super().__init__(cli_ctx=cli_ctx, + custom_command_type=custom_command_type) + + def load_command_table(self, args): + from azext_interconnect_group.commands import load_command_table + from azure.cli.core.aaz import load_aaz_command_table + try: + from . import aaz + except ImportError: + aaz = None + if aaz: + load_aaz_command_table( + loader=self, + aaz_pkg_name=aaz.__name__, + args=args + ) + load_command_table(self, args) + return self.command_table + + def load_arguments(self, command): + from azext_interconnect_group._params import load_arguments + load_arguments(self, command) + + +COMMAND_LOADER_CLS = InterconnectGroupCommandsLoader diff --git a/src/interconnect-group/azext_interconnect_group/_help.py b/src/interconnect-group/azext_interconnect_group/_help.py new file mode 100644 index 00000000000..126d5d00714 --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/_help.py @@ -0,0 +1,11 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=line-too-long +# pylint: disable=too-many-lines + +from knack.help_files import helps # pylint: disable=unused-import diff --git a/src/interconnect-group/azext_interconnect_group/_params.py b/src/interconnect-group/azext_interconnect_group/_params.py new file mode 100644 index 00000000000..cfcec717c9c --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/_params.py @@ -0,0 +1,13 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + + +def load_arguments(self, _): # pylint: disable=unused-argument + pass diff --git a/src/interconnect-group/azext_interconnect_group/aaz/__init__.py b/src/interconnect-group/azext_interconnect_group/aaz/__init__.py new file mode 100644 index 00000000000..5757aea3175 --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/aaz/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/__init__.py b/src/interconnect-group/azext_interconnect_group/aaz/latest/__init__.py new file mode 100644 index 00000000000..f6acc11aa4e --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/aaz/latest/__init__.py @@ -0,0 +1,10 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__cmd_group.py b/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__cmd_group.py new file mode 100644 index 00000000000..2258715ca90 --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "interconnect-group", +) +class __CMDGroup(AAZCommandGroup): + """Manage Interconnect Group + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__init__.py b/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__init__.py new file mode 100644 index 00000000000..32c45884d00 --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__init__.py @@ -0,0 +1,17 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._create import * +from ._delete import * +from ._get_node_availability import * +from ._list import * +from ._show import * +from ._update import * diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_create.py b/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_create.py new file mode 100644 index 00000000000..ba52769ace6 --- /dev/null +++ b/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_create.py @@ -0,0 +1,347 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "interconnect-group create", +) +class Create(AAZCommand): + """Create an interconnect group. + + :example: Create interconnect group + az network interconnect-group create --resource-group rg1 --interconnect-group-name test-ig + """ + + _aaz_info = { + "version": "2025-07-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/interconnectgroups/{}", "2025-07-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.interconnect_group_name = AAZStrArg( + options=["-n", "--name", "--interconnect-group-name"], + help="The name of the interconnect group.", + required=True, + fmt=AAZStrArgFormat( + pattern="^[^_\\W][\\w._-]{0,79}(? Date: Mon, 3 Aug 2026 10:08:37 +0800 Subject: [PATCH 2/4] ref: move to interconnect module --- src/{interconnect-group => interconnect}/HISTORY.rst | 0 src/{interconnect-group => interconnect}/README.md | 6 +++--- .../azext_interconnect}/__init__.py | 12 ++++++------ .../azext_interconnect}/_help.py | 0 .../azext_interconnect}/_params.py | 0 .../azext_interconnect}/aaz/__init__.py | 0 .../azext_interconnect}/aaz/latest/__init__.py | 0 .../aaz/latest/interconnect_group/__cmd_group.py | 0 .../aaz/latest/interconnect_group/__init__.py | 0 .../aaz/latest/interconnect_group/_create.py | 0 .../aaz/latest/interconnect_group/_delete.py | 0 .../interconnect_group/_get_node_availability.py | 0 .../aaz/latest/interconnect_group/_list.py | 0 .../aaz/latest/interconnect_group/_show.py | 0 .../aaz/latest/interconnect_group/_update.py | 0 .../interconnect_group/subgroup/__cmd_group.py | 0 .../latest/interconnect_group/subgroup/__init__.py | 0 .../aaz/latest/interconnect_group/subgroup/_list.py | 0 .../aaz/latest/interconnect_group/subgroup/_show.py | 0 .../azext_interconnect}/azext_metadata.json | 0 .../azext_interconnect}/commands.py | 0 .../azext_interconnect}/custom.py | 0 .../azext_interconnect}/tests/__init__.py | 0 .../azext_interconnect}/tests/latest/__init__.py | 0 .../recordings/test_interconnect_group_crud.yaml | 0 .../tests/latest/test_interconnect_group.py | 0 src/{interconnect-group => interconnect}/setup.cfg | 0 src/{interconnect-group => interconnect}/setup.py | 8 ++++---- src/service_name.json | 5 +++++ 29 files changed, 18 insertions(+), 13 deletions(-) rename src/{interconnect-group => interconnect}/HISTORY.rst (100%) rename src/{interconnect-group => interconnect}/README.md (88%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/__init__.py (74%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/_help.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/_params.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/__init__.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/__init__.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/__cmd_group.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/__init__.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/_create.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/_delete.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/_get_node_availability.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/_list.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/_show.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/_update.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/subgroup/__cmd_group.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/subgroup/__init__.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/subgroup/_list.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/aaz/latest/interconnect_group/subgroup/_show.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/azext_metadata.json (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/commands.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/custom.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/tests/__init__.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/tests/latest/__init__.py (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/tests/latest/recordings/test_interconnect_group_crud.yaml (100%) rename src/{interconnect-group/azext_interconnect_group => interconnect/azext_interconnect}/tests/latest/test_interconnect_group.py (100%) rename src/{interconnect-group => interconnect}/setup.cfg (100%) rename src/{interconnect-group => interconnect}/setup.py (91%) diff --git a/src/interconnect-group/HISTORY.rst b/src/interconnect/HISTORY.rst similarity index 100% rename from src/interconnect-group/HISTORY.rst rename to src/interconnect/HISTORY.rst diff --git a/src/interconnect-group/README.md b/src/interconnect/README.md similarity index 88% rename from src/interconnect-group/README.md rename to src/interconnect/README.md index c2621a26201..96a1bb4c009 100644 --- a/src/interconnect-group/README.md +++ b/src/interconnect/README.md @@ -1,11 +1,11 @@ -# Azure CLI InterconnectGroup Extension # -This is an extension to Azure CLI to manage InterconnectGroup resources. +# Azure CLI Interconnect Extension # +This is an extension to Azure CLI to manage Interconnect resources. ## How to use ## Install the extension: ``` -az extension add --name interconnect-group +az extension add --name interconnect ``` ### Manage interconnect groups ### diff --git a/src/interconnect-group/azext_interconnect_group/__init__.py b/src/interconnect/azext_interconnect/__init__.py similarity index 74% rename from src/interconnect-group/azext_interconnect_group/__init__.py rename to src/interconnect/azext_interconnect/__init__.py index c34a46b4f37..47b3746e50d 100644 --- a/src/interconnect-group/azext_interconnect_group/__init__.py +++ b/src/interconnect/azext_interconnect/__init__.py @@ -6,20 +6,20 @@ # -------------------------------------------------------------------------------------------- from azure.cli.core import AzCommandsLoader -from azext_interconnect_group._help import helps # pylint: disable=unused-import +from azext_interconnect._help import helps # pylint: disable=unused-import -class InterconnectGroupCommandsLoader(AzCommandsLoader): +class InterconnectCommandsLoader(AzCommandsLoader): def __init__(self, cli_ctx=None): from azure.cli.core.commands import CliCommandType custom_command_type = CliCommandType( - operations_tmpl='azext_interconnect_group.custom#{}') + operations_tmpl='azext_interconnect.custom#{}') super().__init__(cli_ctx=cli_ctx, custom_command_type=custom_command_type) def load_command_table(self, args): - from azext_interconnect_group.commands import load_command_table + from azext_interconnect.commands import load_command_table from azure.cli.core.aaz import load_aaz_command_table try: from . import aaz @@ -35,8 +35,8 @@ def load_command_table(self, args): return self.command_table def load_arguments(self, command): - from azext_interconnect_group._params import load_arguments + from azext_interconnect._params import load_arguments load_arguments(self, command) -COMMAND_LOADER_CLS = InterconnectGroupCommandsLoader +COMMAND_LOADER_CLS = InterconnectCommandsLoader diff --git a/src/interconnect-group/azext_interconnect_group/_help.py b/src/interconnect/azext_interconnect/_help.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/_help.py rename to src/interconnect/azext_interconnect/_help.py diff --git a/src/interconnect-group/azext_interconnect_group/_params.py b/src/interconnect/azext_interconnect/_params.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/_params.py rename to src/interconnect/azext_interconnect/_params.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/__init__.py b/src/interconnect/azext_interconnect/aaz/__init__.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/__init__.py rename to src/interconnect/azext_interconnect/aaz/__init__.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/__init__.py b/src/interconnect/azext_interconnect/aaz/latest/__init__.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/__init__.py rename to src/interconnect/azext_interconnect/aaz/latest/__init__.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__cmd_group.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/__cmd_group.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__cmd_group.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/__cmd_group.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__init__.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/__init__.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/__init__.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/__init__.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_create.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_create.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_create.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_create.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_delete.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_delete.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_delete.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_delete.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_get_node_availability.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_get_node_availability.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_get_node_availability.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_get_node_availability.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_list.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_list.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_list.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_list.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_show.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_show.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_show.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_show.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_update.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_update.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/_update.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_update.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/__cmd_group.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/__cmd_group.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/__cmd_group.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/__cmd_group.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/__init__.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/__init__.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/__init__.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/__init__.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/_list.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_list.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/_list.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_list.py diff --git a/src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/_show.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_show.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/aaz/latest/interconnect_group/subgroup/_show.py rename to src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_show.py diff --git a/src/interconnect-group/azext_interconnect_group/azext_metadata.json b/src/interconnect/azext_interconnect/azext_metadata.json similarity index 100% rename from src/interconnect-group/azext_interconnect_group/azext_metadata.json rename to src/interconnect/azext_interconnect/azext_metadata.json diff --git a/src/interconnect-group/azext_interconnect_group/commands.py b/src/interconnect/azext_interconnect/commands.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/commands.py rename to src/interconnect/azext_interconnect/commands.py diff --git a/src/interconnect-group/azext_interconnect_group/custom.py b/src/interconnect/azext_interconnect/custom.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/custom.py rename to src/interconnect/azext_interconnect/custom.py diff --git a/src/interconnect-group/azext_interconnect_group/tests/__init__.py b/src/interconnect/azext_interconnect/tests/__init__.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/tests/__init__.py rename to src/interconnect/azext_interconnect/tests/__init__.py diff --git a/src/interconnect-group/azext_interconnect_group/tests/latest/__init__.py b/src/interconnect/azext_interconnect/tests/latest/__init__.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/tests/latest/__init__.py rename to src/interconnect/azext_interconnect/tests/latest/__init__.py diff --git a/src/interconnect-group/azext_interconnect_group/tests/latest/recordings/test_interconnect_group_crud.yaml b/src/interconnect/azext_interconnect/tests/latest/recordings/test_interconnect_group_crud.yaml similarity index 100% rename from src/interconnect-group/azext_interconnect_group/tests/latest/recordings/test_interconnect_group_crud.yaml rename to src/interconnect/azext_interconnect/tests/latest/recordings/test_interconnect_group_crud.yaml diff --git a/src/interconnect-group/azext_interconnect_group/tests/latest/test_interconnect_group.py b/src/interconnect/azext_interconnect/tests/latest/test_interconnect_group.py similarity index 100% rename from src/interconnect-group/azext_interconnect_group/tests/latest/test_interconnect_group.py rename to src/interconnect/azext_interconnect/tests/latest/test_interconnect_group.py diff --git a/src/interconnect-group/setup.cfg b/src/interconnect/setup.cfg similarity index 100% rename from src/interconnect-group/setup.cfg rename to src/interconnect/setup.cfg diff --git a/src/interconnect-group/setup.py b/src/interconnect/setup.py similarity index 91% rename from src/interconnect-group/setup.py rename to src/interconnect/setup.py index cf16b4236cb..bbc143bfd0c 100644 --- a/src/interconnect-group/setup.py +++ b/src/interconnect/setup.py @@ -36,16 +36,16 @@ HISTORY = f.read() setup( - name='interconnect-group', + name='interconnect', version=VERSION, - description='Microsoft Azure Command-Line Tools InterconnectGroup Extension.', + description='Microsoft Azure Command-Line Tools Interconnect Extension.', long_description=README + '\n\n' + HISTORY, license='MIT', author='Microsoft Corporation', author_email='azpycli@microsoft.com', - url='https://github.com/Azure/azure-cli-extensions/tree/main/src/interconnect-group', + url='https://github.com/Azure/azure-cli-extensions/tree/main/src/interconnect', classifiers=CLASSIFIERS, packages=find_packages(exclude=["tests"]), - package_data={'azext_interconnect_group': ['azext_metadata.json']}, + package_data={'azext_interconnect': ['azext_metadata.json']}, install_requires=DEPENDENCIES ) diff --git a/src/service_name.json b/src/service_name.json index e2d64bd2d29..fcf3a238fb3 100644 --- a/src/service_name.json +++ b/src/service_name.json @@ -1073,5 +1073,10 @@ "Command": "az changesafety", "AzureServiceName": "ChangeSafety", "URL": "" + }, + { + "Command": "az interconnect-group", + "AzureServiceName": "Interconnect", + "URL": "" } ] From d002ce3fe43ffdb0ab9aa76300191e8abfc70cbb Mon Sep 17 00:00:00 2001 From: Jian Hui Date: Mon, 3 Aug 2026 10:41:45 +0800 Subject: [PATCH 3/4] test: update test case --- .../_get_node_availability.py | 2 +- .../interconnect_group/subgroup/_list.py | 2 +- .../interconnect_group/subgroup/_show.py | 2 +- .../test_interconnect_group_crud.yaml | 100 +++++++++--------- 4 files changed, 52 insertions(+), 54 deletions(-) diff --git a/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_get_node_availability.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_get_node_availability.py index ea42067f4c8..e391a3160a4 100644 --- a/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_get_node_availability.py +++ b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/_get_node_availability.py @@ -46,7 +46,7 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.interconnect_group_name = AAZStrArg( - options=["--interconnect-group-name"], + options=["--group-name", "--interconnect-group-name"], help="The name of the interconnect group.", required=True, id_part="name", diff --git a/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_list.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_list.py index 8fe8d7dd229..0f3ee3041f2 100644 --- a/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_list.py +++ b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_list.py @@ -46,7 +46,7 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.interconnect_group_name = AAZStrArg( - options=["--interconnect-group-name"], + options=["--group-name", "--interconnect-group-name"], help="The name of the interconnect group.", required=True, fmt=AAZStrArgFormat( diff --git a/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_show.py b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_show.py index 8272119d144..d0c97fe7ef6 100644 --- a/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_show.py +++ b/src/interconnect/azext_interconnect/aaz/latest/interconnect_group/subgroup/_show.py @@ -45,7 +45,7 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.interconnect_group_name = AAZStrArg( - options=["--interconnect-group-name"], + options=["--group-name", "--interconnect-group-name"], help="The name of the interconnect group.", required=True, id_part="name", diff --git a/src/interconnect/azext_interconnect/tests/latest/recordings/test_interconnect_group_crud.yaml b/src/interconnect/azext_interconnect/tests/latest/recordings/test_interconnect_group_crud.yaml index 1dbdf494622..55bef388d6b 100644 --- a/src/interconnect/azext_interconnect/tests/latest/recordings/test_interconnect_group_crud.yaml +++ b/src/interconnect/azext_interconnect/tests/latest/recordings/test_interconnect_group_crud.yaml @@ -24,7 +24,7 @@ interactions: uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002?api-version=2025-07-01 response: body: - string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"325a77f3-ab2d-402a-be54-5ff01b9c17ea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"b9bab453-de25-4758-b33f-116764abad5e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' + string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"df95dff2-9ba8-48e6-bec8-c9ad114ceeea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"3d466ec6-094c-40f9-9baa-0f5557a0630e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' headers: cache-control: - no-cache @@ -33,7 +33,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:13 GMT + - Mon, 03 Aug 2026 02:39:47 GMT expires: - '-1' pragma: @@ -45,18 +45,18 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - bbbf4141-e27d-45f4-9e8e-0bddd9abe536 + - 21093714-e6ca-4863-9872-09e9a4935098 x-ms-operation-identifier: - - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/southeastasia/13f0888f-1f37-4edd-a6b6-8ebd2e576d31 + - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/eastus2/e2564090-dc52-4753-ac3a-4cf06a5437fd x-ms-ratelimit-remaining-subscription-global-writes: - '2999' x-ms-ratelimit-remaining-subscription-writes: - '199' x-ms-throttle-levels: - - operationRatePct=0.1, operationConcurrencyPct=0.3, subscriptionWriteRatePct=0.9, + - operationRatePct=0.1, operationConcurrencyPct=0.3, subscriptionWriteRatePct=0.1, etc x-msedge-ref: - - 'Ref A: F64A3539EDFF49A29513A9E1441B90F1 Ref B: SG2AA1070305025 Ref C: 2026-08-03T01:02:08Z' + - 'Ref A: 65413DCBEEAE4E7CB988B579919A2D10 Ref B: SG2AA1040516031 Ref C: 2026-08-03T02:39:47Z' status: code: 201 message: Created @@ -79,7 +79,7 @@ interactions: uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002?api-version=2025-07-01 response: body: - string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"325a77f3-ab2d-402a-be54-5ff01b9c17ea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"b9bab453-de25-4758-b33f-116764abad5e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' + string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"df95dff2-9ba8-48e6-bec8-c9ad114ceeea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"3d466ec6-094c-40f9-9baa-0f5557a0630e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' headers: cache-control: - no-cache @@ -88,9 +88,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:16 GMT + - Mon, 03 Aug 2026 02:39:50 GMT etag: - - W/"325a77f3-ab2d-402a-be54-5ff01b9c17ea" + - W/"df95dff2-9ba8-48e6-bec8-c9ad114ceeea" expires: - '-1' pragma: @@ -102,13 +102,13 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - fea0fcc0-2040-417b-843d-8221f171095f + - 77e79484-717c-424c-ba50-0e56485ff012 x-ms-ratelimit-remaining-subscription-global-reads: - '3749' x-ms-throttle-levels: - - operationConcurrencyPct=0.5, subscriptionReadRatePct=0.2, etc + - operationConcurrencyPct=0.5, etc x-msedge-ref: - - 'Ref A: 64A3553A51BA4D3FBD1A8D3210050190 Ref B: SG2AA1070306042 Ref C: 2026-08-03T01:02:15Z' + - 'Ref A: D9B01EE0AA1D471684E8AE66F0AFFBFA Ref B: SG2AA1040512052 Ref C: 2026-08-03T02:39:49Z' status: code: 200 message: OK @@ -131,7 +131,7 @@ interactions: uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups?api-version=2025-07-01 response: body: - string: '{"value":[{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"325a77f3-ab2d-402a-be54-5ff01b9c17ea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"b9bab453-de25-4758-b33f-116764abad5e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}]}' + string: '{"value":[{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"df95dff2-9ba8-48e6-bec8-c9ad114ceeea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"3d466ec6-094c-40f9-9baa-0f5557a0630e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}]}' headers: cache-control: - no-cache @@ -140,7 +140,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:17 GMT + - Mon, 03 Aug 2026 02:39:52 GMT expires: - '-1' pragma: @@ -152,15 +152,15 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 4979e439-8df9-4c44-a715-2cce06dd5720 + - b62881b0-98b1-4749-8a83-7ef97cca5f91 x-ms-original-request-ids: - - 65d28648-a2fc-42e7-b425-2f17a86fd7c0 + - ffb216ea-69c3-421f-899d-53471078e2af x-ms-ratelimit-remaining-subscription-global-reads: - '3749' x-ms-throttle-levels: - - operationConcurrencyPct=0.5, subscriptionReadRatePct=0.2, etc + - operationConcurrencyPct=0.5, etc x-msedge-ref: - - 'Ref A: CF25911CED8B474FB4D29261E024A04B Ref B: SG2AA1070303060 Ref C: 2026-08-03T01:02:17Z' + - 'Ref A: 68EB08E963794A64A9ECB4E0A49D9D0C Ref B: SG2AA1040515062 Ref C: 2026-08-03T02:39:52Z' status: code: 200 message: OK @@ -183,7 +183,7 @@ interactions: uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002?api-version=2025-07-01 response: body: - string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"325a77f3-ab2d-402a-be54-5ff01b9c17ea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"b9bab453-de25-4758-b33f-116764abad5e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' + string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"df95dff2-9ba8-48e6-bec8-c9ad114ceeea\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1"},"properties":{"provisioningState":"Succeeded","resourceGuid":"3d466ec6-094c-40f9-9baa-0f5557a0630e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' headers: cache-control: - no-cache @@ -192,9 +192,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:18 GMT + - Mon, 03 Aug 2026 02:39:55 GMT etag: - - W/"325a77f3-ab2d-402a-be54-5ff01b9c17ea" + - W/"df95dff2-9ba8-48e6-bec8-c9ad114ceeea" expires: - '-1' pragma: @@ -206,14 +206,13 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 5183e11d-9e2f-4e3c-a542-e9a04fe3562b + - 478aefa6-abaa-449b-abda-8cd462ecd71d x-ms-ratelimit-remaining-subscription-global-reads: - '3749' x-ms-throttle-levels: - - operationRatePct=0.1, operationConcurrencyPct=0.5, subscriptionReadRatePct=0.2, - etc + - operationRatePct=0.1, operationConcurrencyPct=0.5, etc x-msedge-ref: - - 'Ref A: 4360E510941047488764F12B0CB82F54 Ref B: SG2AA1070303052 Ref C: 2026-08-03T01:02:18Z' + - 'Ref A: 5E8E81E661F04FC6913E4576F23BF3E5 Ref B: SG2AA1070302040 Ref C: 2026-08-03T02:39:55Z' status: code: 200 message: OK @@ -243,7 +242,7 @@ interactions: uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002?api-version=2025-07-01 response: body: - string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"106b210a-79ec-4c58-a185-503c96da6695\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1","key2":"value2"},"properties":{"provisioningState":"Succeeded","resourceGuid":"b9bab453-de25-4758-b33f-116764abad5e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' + string: '{"name":"ig-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_interconnect_group_000001/providers/Microsoft.Network/interconnectGroups/ig-000002","etag":"W/\"10c3b3d8-78c7-4bb1-84ba-dfaf8cc7cb26\"","type":"Microsoft.Network/interconnectGroups","location":"eastus2","tags":{"key1":"value1","key2":"value2"},"properties":{"provisioningState":"Succeeded","resourceGuid":"3d466ec6-094c-40f9-9baa-0f5557a0630e","scope":"InfiniBand","subgroupProfile":{"vmSize":"Standard_ND128isr_NDR_GB200_v6","scope":"VerticalConnect","size":18},"subgroups":[]}}' headers: cache-control: - no-cache @@ -252,7 +251,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:20 GMT + - Mon, 03 Aug 2026 02:39:57 GMT expires: - '-1' pragma: @@ -264,21 +263,21 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 99b65989-f850-419f-9340-99b5abdf81ac + - d18baf70-a8bf-41f5-958b-a7cc22e3370d x-ms-operation-identifier: - - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/eastus2/09d686b1-547c-42e4-925a-80ff5ad9212b + - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/eastus2/7564ffa3-3344-4c42-ac51-80209b25d0dd x-ms-ratelimit-remaining-subscription-global-writes: - '2999' x-ms-ratelimit-remaining-subscription-writes: - '199' x-ms-throttle-levels: - - operationRatePct=0.2, operationConcurrencyPct=0.3, subscriptionWriteRatePct=1.0, + - operationRatePct=0.2, operationConcurrencyPct=0.3, subscriptionWriteRatePct=0.2, etc x-msedge-ref: - - 'Ref A: 89A166097E75470A9ED7B3F77952B6F0 Ref B: SG2AA1070301040 Ref C: 2026-08-03T01:02:19Z' + - 'Ref A: 881D2925313B4421A6044B50D00F8FAA Ref B: SG2AA1040516040 Ref C: 2026-08-03T02:39:56Z' status: code: 200 - message: OK + message: '' - request: body: null headers: @@ -311,11 +310,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:22 GMT + - Mon, 03 Aug 2026 02:39:59 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/operationResults/6962ca4c-b084-4fc7-8e12-ae90ba7722d5?api-version=2025-07-01&t=639213157423989546&c=MIIIJzCCBw-gAwIBAgIRAPkg2z-B9Jm_vrDg-qNrjwswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgV0NVUyBDQSAwMTAeFw0yNjA0MTAwNjUyMTdaFw0yNjEwMDUxMjUyMTdaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxhFGHIBug-4Pg8y8wrt85aTDI_1ckzX8XYnsk6BmTh36sX4QX-zrgCccWt1yXC8y3lSRvEr66Pgoywj0gN60U0prO-Llj-OOWdlGOnbBFPBaBa2ogrj2ULknxSn8HyrgUsMa3zGCqoR_eDSq7R_O20UZDFBlonw8TSmqdLPA4fe1TarGVXDGoRxYv_BQE0sxI54JmyZ5uATcXoIBRqCEmrRFh6MO0V4rK5-sBO8yodyMdOweERdOFcDfLvM2WCaax5HnsjPSLMYy-XTD01vXM3XkKAJ6K30JxQ4_Wtn1IvN-b0R-eEdUMUdPKhH4RDL_8xL-ALqsnaG0cNZazOQr1QIDAQABo4IFJDCCBSAwgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUdjmEGeQg6LiPic0f-L1KBD3vO0wwHwYDVR0jBBgwFoAUFNI34PbWfX7djbq6ZasElCXglh0wggH7BgNVHR8EggHyMIIB7jB7oHmgd4Z1aHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L3dlc3RjZW50cmFsdXMvY3Jscy9jY21ld2VzdGNlbnRyYWx1c3BraS9jY21ld2VzdGNlbnRyYWx1c2ljYTAxLzI5L2N1cnJlbnQuY3JsMH2ge6B5hndodHRwOi8vc2Vjb25kYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC93ZXN0Y2VudHJhbHVzL2NybHMvY2NtZXdlc3RjZW50cmFsdXNwa2kvY2NtZXdlc3RjZW50cmFsdXNpY2EwMS8yOS9jdXJyZW50LmNybDBsoGqgaIZmaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3dlc3RjZW50cmFsdXMvY3Jscy9jY21ld2VzdGNlbnRyYWx1c3BraS9jY21ld2VzdGNlbnRyYWx1c2ljYTAxLzI5L2N1cnJlbnQuY3JsMIGBoH-gfYZ7aHR0cDovL2NjbWV3ZXN0Y2VudHJhbHVzcGtpLndlc3RjZW50cmFsdXMucGtpLmNvcmUud2luZG93cy5uZXQvY2VydGlmaWNhdGVBdXRob3JpdGllcy9jY21ld2VzdGNlbnRyYWx1c2ljYTAxLzI5L2N1cnJlbnQuY3JsMIICAAYIKwYBBQUHAQEEggHyMIIB7jB-BggrBgEFBQcwAoZyaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L3dlc3RjZW50cmFsdXMvY2FjZXJ0cy9jY21ld2VzdGNlbnRyYWx1c3BraS9jY21ld2VzdGNlbnRyYWx1c2ljYTAxL2NlcnQuY2VyMIGABggrBgEFBQcwAoZ0aHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvd2VzdGNlbnRyYWx1cy9jYWNlcnRzL2NjbWV3ZXN0Y2VudHJhbHVzcGtpL2NjbWV3ZXN0Y2VudHJhbHVzaWNhMDEvY2VydC5jZXIwbwYIKwYBBQUHMAKGY2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS93ZXN0Y2VudHJhbHVzL2NhY2VydHMvY2NtZXdlc3RjZW50cmFsdXNwa2kvY2NtZXdlc3RjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjB4BggrBgEFBQcwAoZsaHR0cDovL2NjbWV3ZXN0Y2VudHJhbHVzcGtpLndlc3RjZW50cmFsdXMucGtpLmNvcmUud2luZG93cy5uZXQvY2VydGlmaWNhdGVBdXRob3JpdGllcy9jY21ld2VzdGNlbnRyYWx1c2ljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAwpZthpdA-8D9zmLFa9DswaQjZpHoWrNOxcAkBHpasqPjLn8-Kn0Epr2tRtCqiDWEGx_u3n8ziMDqRxvNKiDUdDWhMl9QuodIY45vNfF6z92zdJEJ0m01EaNwji4O0BNu0Yy7zPa_L79KmbrFPHHQkexKO2qyHqYM0M22afvWFTacEIlhMIcL-Hq6afh-pfO3r2D3ZnFSmrZFt1A8qT0qTCXRaOqAM1Wk35M7k-idK2KawQ4Q9KnP0h62bPPhktf4Hi_Ax5-Ms7zxobTxMvoilvGVHYDeQ2zZDEoMmyNZ1gfzPjnGnV2BbMj3JEHIzWuKuw033HBrOIc8peAt8JKrH&s=p_wSSqZas8NlsS7c7t8z9SLUw2vxatSKfxS7K7Rjbp58jCfX7jFV4XK38xab7-ZbkVqxjpAAuwi8aKqg_56T5IW8LzVDJ9-gKNtFvqPYAYksVU3b59M6P9YmlJIh6YZlA3sK4z3RLm0zurDaoUXt1vA7Z8FxcyPLtcAvrmz8n0nTtaXH7NzHWai8zevyVZW-NC0Df6k9QAVc121zxpTvw4i-IXL56D9ShaO3p9ng6GcFJKDT4ZJdHrbY3Jn-56Ey_xf9GDvHcxtwfIUj0MJ-PqcWbknPVoRrUxEz_ft-SyZZ6nwBoQzmkRrAoec0FZsfoS8-izhZilQoxmOFrdUVkg&h=EngWNeDUnTYjUsw5m6ZWLMWWJ56WlcQPI29hibxEmv4 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/operationResults/d300fc78-7839-4c7c-ad78-d4a3224b1eea?api-version=2025-07-01&t=639213215996763019&c=MIIHxDCCBqygAwIBAgIRAJbrgketDbWHLEx1EpPCeH4wDQYJKoZIhvcNAQELBQAwNTEzMDEGA1UEAxMqQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgQ1VTIENBIDAxMB4XDTI2MDQwODAwMDQ1MloXDTI2MTAwMzA2MDQ1MlowQDE-MDwGA1UEAxM1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDT3FOWry_6qK0dbuwtMK4T4HuDo_lxyL6jb91_Fr1VWY_VRVB7zp7HCgghkwofjjGAbbdIqDseNKJdMcooubZaRzrViDXEgbnaN8vC-4cZ4fjDUhtZh80l4sEyp_iBCPcY7I-xDOLiz7i1vlpvCL7tA0iKHuk6AAPDQk4fPmFWUwUWR3SajkDmuQjTPVWhQyEOJVGJNf6hvyBKFjGuXqSOk8prQb8yn6q8TftPg2b9zjlfxfHQEZqdePVaY7VeW2ljF2sUmWsNvQikg3g_Zh9I6j0tT0DW51c8CoF8PrVglMgLQVrYCdAeE30Fi0vIiXCT0XOP-0RYInckGEJqDB8JAgMBAAGjggTCMIIEvjCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAYwAtAGEAMAA1ADUALQA1AGIAZABhAGYAZgBkADUAZQAzADMAZDAMBgorBgEEAYI3ewMCMAwGCisGAQQBgjd7BAIwDAYDVR0TAQH_BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH_BAQDAgWgMB0GA1UdDgQWBBQZbVl_wKnmyxn5O2JcAqCDdVaL3zAfBgNVHSMEGDAWgBT85FoKL4UO50S5B3N44NREB6IZETCCAcoGA1UdHwSCAcEwggG9MG-gbaBrhmlodHRwOi8vcHJpbWFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNTUvY3VycmVudC5jcmwwcaBvoG2Ga2h0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2NlbnRyYWx1cy9jcmxzL2NjbWVjZW50cmFsdXNwa2kvY2NtZWNlbnRyYWx1c2ljYTAxLzU1L2N1cnJlbnQuY3JsMGCgXqBchlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNTUvY3VycmVudC5jcmwwdaBzoHGGb2h0dHA6Ly9jY21lY2VudHJhbHVzcGtpLmNlbnRyYWx1cy5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVjZW50cmFsdXNpY2EwMS81NS9jdXJyZW50LmNybDCCAc8GCCsGAQUFBwEBBIIBwTCCAb0wcgYIKwYBBQUHMAKGZmh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjB0BggrBgEFBQcwAoZoaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NhY2VydHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvY2VydC5jZXIwYwYIKwYBBQUHMAKGV2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjBsBggrBgEFBQcwAoZgaHR0cDovL2NjbWVjZW50cmFsdXNwa2kuY2VudHJhbHVzLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWNlbnRyYWx1c2ljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQCJKCm8sITuRyQTfwfcPh1P_Y_FIoUY5rZqcJP5tAOTOk1M7UmZj3IhXCBuZfq1T1jLPVgMAAzHcyE4XjPrHalXdgSI6SJ0gq8I0X_ncsTkhomAsA5RU_sucWZ9nWgbXX-QDJi_bM0mzxsaKErSi607X1BM3DqI2SNMMgk6r2Ez8s8_vw6HLIGw7rLHx2D1muwevYyZ0dVgJa-VHCrBoSBL_ytZIofR5WUtbICE_9YIipUuxbnIRg9Vo_fv4cLzx0uLFk32vRKMroJ_zkJageE_exU-hNqZc7DSsWkROInmq7mMmyBvpTZB-q5PrEYUJi9zJZserlQTQG1e7u-Z7UEl&s=noG3UgYWNyhJEBdHKf-a2v71OEyJ4MiipOeSy7IgUTpyys6pQZBJEvhl1In_uWd5llEYdHh1ywVaNnxykVjhd9FU4I21t-u3iWWdoTuOvLUn4BQG4oToENAriuF_1zBXzoivN3Mr-4ghBh9nMoOGhXDZf81cXmRY3zNc1sXqXROHEEliycS5D3ycwqFDBs1WvfYScqh-O-fwAheGFGbKaosAGnpRfn2fJcNiQq4EwWGVYuWQ_0J8JQS4y6x9XGzCh2waKjZ5YzUTQK2YbSgVG8VYYMxp7y5c0vGpficlFcyNBHcDpYpK7Qw3Nba_Rf8_Pd_s4owcbUfP4_U6f86sNA&h=oIbv-pf7HaVvbh9VRuwNatrnpOMlsDAN7ELW51q7rsQ pragma: - no-cache strict-transport-security: @@ -325,17 +324,17 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - f02ad571-99f5-4b49-a692-d881ff67c961 + - dd06140c-4b79-4fee-95e0-96345729a8e8 x-ms-operation-identifier: - - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/southeastasia/6a43b2a8-63bf-4485-ad55-3e150ce0b9bd + - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/eastus2/c24282b9-e577-46f7-8e46-d6fe20c01598 x-ms-ratelimit-remaining-subscription-global-writes: - '2999' x-ms-ratelimit-remaining-subscription-writes: - '199' x-ms-throttle-levels: - - operationConcurrencyPct=0.5, subscriptionWriteRatePct=1.1, etc + - operationConcurrencyPct=0.5, subscriptionWriteRatePct=0.3, etc x-msedge-ref: - - 'Ref A: 17466553C9E24AA5B8402B3988D3CDB7 Ref B: SG2AA1040517025 Ref C: 2026-08-03T01:02:21Z' + - 'Ref A: B1C70A02EF10437389C2DA54849B6836 Ref B: SG2AA1040516031 Ref C: 2026-08-03T02:39:59Z' status: code: 200 message: OK @@ -367,7 +366,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:23 GMT + - Mon, 03 Aug 2026 02:40:02 GMT expires: - '-1' pragma: @@ -379,16 +378,15 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 48e7dcc0-2240-4342-b4ca-1bf2ac473ae9 + - 3f43786e-f041-4a8e-bd14-62738a0db224 x-ms-operation-identifier: - - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/eastus2/2097ba18-15e6-4277-8053-bc28eb8d77cf + - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/southeastasia/bd8b40f8-b268-4681-a6a5-60ea5abd33b8 x-ms-ratelimit-remaining-subscription-global-reads: - '3749' x-ms-throttle-levels: - - operationConcurrencyPct=0.5, subscriptionReadRatePct=0.2, subscriptionListRatePct=0.1, - etc + - operationConcurrencyPct=0.5, etc x-msedge-ref: - - 'Ref A: 36FF06790D37450BA0DA78D45FF24EE0 Ref B: SG2AA1040520062 Ref C: 2026-08-03T01:02:23Z' + - 'Ref A: 8F14923A8CE44FCDA7235959DA9C4A5A Ref B: SG2AA1040520031 Ref C: 2026-08-03T02:40:01Z' status: code: 200 message: OK @@ -418,7 +416,7 @@ interactions: cache-control: - no-cache date: - - Mon, 03 Aug 2026 01:02:25 GMT + - Mon, 03 Aug 2026 02:40:09 GMT expires: - '-1' pragma: @@ -430,18 +428,18 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 9ecef071-30fd-4333-9d30-8718a74694cb + - 6f277f9f-5d1b-4034-8130-d41082d6b601 x-ms-operation-identifier: - - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/eastus2/bb747480-95ca-4984-8de1-a83be264e27c + - tenantId=4f00b3b6-2940-4f2c-b037-94637c180d30,objectId=016c741f-3499-47a6-bdb0-6ef338078ddf/southeastasia/753fa3a9-317f-46ce-8884-ea95801f455a x-ms-ratelimit-remaining-subscription-deletes: - '199' x-ms-ratelimit-remaining-subscription-global-deletes: - '2999' x-ms-throttle-levels: - - operationRatePct=0.1, operationConcurrencyPct=0.3, subscriptionWriteRatePct=1.2, + - operationRatePct=0.1, operationConcurrencyPct=0.3, subscriptionWriteRatePct=0.4, etc x-msedge-ref: - - 'Ref A: E73DE06BA6BE4C3DAF59BA8AE90C8682 Ref B: SG2AA1070304062 Ref C: 2026-08-03T01:02:24Z' + - 'Ref A: E080057795B94C0096ED96D119C6B5B2 Ref B: SG2AA1040518060 Ref C: 2026-08-03T02:40:04Z' status: code: 204 message: No Content @@ -473,7 +471,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 03 Aug 2026 01:02:27 GMT + - Mon, 03 Aug 2026 02:40:12 GMT expires: - '-1' pragma: @@ -487,7 +485,7 @@ interactions: x-ms-ratelimit-remaining-subscription-global-reads: - '3749' x-msedge-ref: - - 'Ref A: 6A980953F48A406CA1BDB67744CC836A Ref B: SG2AA1070302034 Ref C: 2026-08-03T01:02:26Z' + - 'Ref A: 9BEAF838C9B64E9B8CE7284A568C83BD Ref B: SG2AA1040520060 Ref C: 2026-08-03T02:40:12Z' status: code: 200 message: OK From 3e910a525f513a370debdbb46331f5c43949f7bf Mon Sep 17 00:00:00 2001 From: Jian Hui Date: Thu, 6 Aug 2026 12:46:52 +0800 Subject: [PATCH 4/4] doc: update HISTORY.rst --- src/interconnect/HISTORY.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interconnect/HISTORY.rst b/src/interconnect/HISTORY.rst index 84be565f5c6..52c1dc2ae85 100644 --- a/src/interconnect/HISTORY.rst +++ b/src/interconnect/HISTORY.rst @@ -5,4 +5,4 @@ Release History 1.0.0b1 ++++++ -* Initial release. +* Add preview support for interconnect group CRUD, node availability queries, and subgroup list/show operations.