Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
ebdc33b
List instances and List revision should use ST Id not name
Mar 2, 2026
cf07a53
Merge branch 'Azure:main' into avpatra/RevisionInstancesFix
Avisiktapatra Mar 2, 2026
9e85d13
Add history
Mar 2, 2026
62b8b53
Merge branch 'avpatra/RevisionInstancesFix' of https://github.com/man…
Mar 2, 2026
94c1821
upgrade version
Mar 2, 2026
82cb3e5
Fix the version sequence in history file
Mar 2, 2026
2845dd8
fix review comments
Mar 2, 2026
9630b19
Update src/workload-orchestration/azext_workload_orchestration/aaz/la…
Avisiktapatra Mar 2, 2026
dafc862
Update src/workload-orchestration/azext_workload_orchestration/aaz/la…
Avisiktapatra Mar 2, 2026
61d4b59
feat: add az workload-orchestration support create-bundle command
Mar 11, 2026
99054c4
improve: enhance bundle data + RBAC errors + disk check
Mar 11, 2026
aca7edb
feat(support-bundle): add retry, timeout, namespace validation, resou…
Mar 11, 2026
ee91522
docs: update HISTORY.rst and clean up conftest for PR readiness
Mar 11, 2026
2ba769c
refactor: restructure support bundle into support/ subpackage
Mar 11, 2026
be71134
docs: expand README with complete guide for adding checks, collectors…
Mar 11, 2026
d75e8eb
chore: remove unused imports (tempfile, json, os)
Mar 11, 2026
03040c6
chore: remove unused get_enum_type import from _params.py
Mar 11, 2026
98dd6a7
feat: add --bundle-name param and network config collection
Mar 12, 2026
e4146a2
feat: add checks/summary.json with consolidated check results
Mar 12, 2026
1ed5bec
fix: keep support/ at extension root, add AAZ mocks to conftest
Mar 12, 2026
1ee66d3
chore: bump version to 6.0.0 for support bundle feature
Mar 12, 2026
ce3d176
refactor: remove health summary (HEALTHY/DEGRADED/CRITICAL) markers
Mar 12, 2026
e859d1d
chore: remove accidentally committed zip file
Mar 12, 2026
e8e58f2
fix: restore health summary, only remove HEALTHY/DEGRADED/CRITICAL la…
Mar 12, 2026
bac7b5a
feat: add comprehensive SUMMARY.md to bundle root
Mar 12, 2026
337b4d7
refactor: organize resources into per-namespace subdirectories
Mar 12, 2026
243674d
feat: add Arc dependency check, WO services/deployments check, cluste…
Mar 12, 2026
18023b9
Merge branch 'Azure:main' into avpatra/RevisionInstancesFix
manaswita-chichili Mar 16, 2026
92ec4f7
Validate site id for context site reference and config link
manaswita-chichili Mar 16, 2026
f171502
Merge branch 'avpatra/RevisionInstancesFix' of https://github.com/man…
manaswita-chichili Mar 16, 2026
e13ab16
Simply code to use same validation helper class
manaswita-chichili Mar 16, 2026
3d051a2
resolve review comments
Mar 16, 2026
3791191
version upgrade
Mar 16, 2026
b541e54
Merge branch 'Azure:main' into avpatra/RevisionInstancesFix
manaswita-chichili Mar 17, 2026
dd79fb1
add chnges
Mar 17, 2026
38371c4
version chnge
Mar 17, 2026
6100dff
Add new command for capability upates
Nishad94 Mar 17, 2026
6bcad89
Merge pull request #4 from manaswita-chichili/ndawkhar/cap-deletion-st
Avisiktapatra Mar 17, 2026
3c9b7c0
merge: add support bundle feature into combined CLI release
Mar 18, 2026
75eb01d
fix: resolve all pylint warnings for CI pipeline
Mar 18, 2026
9724729
fix: resolve all pylint and flake8 lint errors for CI
Mar 18, 2026
aa2528b
fix: resolve ALL remaining pylint errors for CI
Mar 18, 2026
8be6848
fix: remove conftest.py and test_support_bundle.py to fix CI pipeline
Mar 20, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
# flake8: noqa

from azure.cli.core.aaz import *
from ._target_helper import TargetHelper


@register_command(
Expand Down Expand Up @@ -89,6 +90,14 @@ class SolutionInstancesList(AAZHttpOperation):
CLIENT_TYPE = "MgmtClient"

def __call__(self, *args, **kwargs):
# Resolve solution template name to its uniqueIdentifier
self.unique_identifier = TargetHelper.get_solution_template_unique_identifier(
self.ctx.subscription_id,
self.ctx.args.resource_group,
self.ctx.args.solution_name,
self.client
)

request = self.make_request()
Comment on lines 87 to 94
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new behavior adds an extra management-plane GET to resolve the solution template uniqueIdentifier before listing instances, but there’s no scenario coverage for this command path in the extension tests. Adding/adjusting a scenario test to exercise workload-orchestration target solution-instance-list (including the extra solutionTemplates GET) would help prevent regressions.

Copilot uses AI. Check for mistakes.
session = self.client.send_request(request=request, stream=False, **kwargs)
if session.http_response.status_code in [200]:
Expand Down Expand Up @@ -127,7 +136,7 @@ def url_parameters(self):
required=True,
),
**self.serialize_url_param(
"solutionName", self.ctx.args.solution_name,
"solutionName", self.unique_identifier,
required=True,
),
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
# flake8: noqa

from azure.cli.core.aaz import *
from ._target_helper import TargetHelper


@register_command(
Expand Down Expand Up @@ -92,6 +93,14 @@ class TargetSolutionRevisionsList(AAZHttpOperation):
CLIENT_TYPE = "MgmtClient"

def __call__(self, *args, **kwargs):
# Resolve solution template name to its uniqueIdentifier
self.unique_identifier = TargetHelper.get_solution_template_unique_identifier(
self.ctx.subscription_id,
self.ctx.args.resource_group,
self.ctx.args.solution_name,
self.client
)

request = self.make_request()
session = self.client.send_request(request=request, stream=False, **kwargs)
Comment thread
Avisiktapatra marked this conversation as resolved.
if session.http_response.status_code in [200]:
Expand Down Expand Up @@ -122,7 +131,7 @@ def url_parameters(self):
required=True,
),
**self.serialize_url_param(
"solutionName", self.ctx.args.solution_name,
"solutionName", self.unique_identifier,
required=True,
),
**self.serialize_url_param(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
Comment thread
Avisiktapatra marked this conversation as resolved.

# pylint: skip-file
# flake8: noqa


class TargetHelper:
"""Shared helper for target commands."""

@staticmethod
def get_solution_template_unique_identifier(subscription_id, resource_group_name, template_name, client):
"""Fetch the solution template and return its uniqueIdentifier from properties.

Args:
subscription_id: The subscription ID
resource_group_name: The resource group name
template_name: The solution template name
client: HTTP client for making the request

Returns:
str: The uniqueIdentifier from template properties, or template_name as fallback

Raises:
CLIInternalError: If the template does not exist or the request fails
"""
from azure.cli.core.azclierror import CLIInternalError
import json

template_url = client.format_url(
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/solutionTemplates/{solutionTemplateName}",
subscriptionId=subscription_id,
resourceGroupName=resource_group_name,
solutionTemplateName=template_name
)
request = client._request("GET", template_url, {
"api-version": "2025-08-01"
}, {
"Accept": "application/json"
}, None, {}, None)

response = client.send_request(request=request, stream=False)

if response.http_response.status_code == 404:
raise CLIInternalError(
f"Solution template '{template_name}' not found in resource group '{resource_group_name}'."
)
if response.http_response.status_code != 200:
raise CLIInternalError(
f"Failed to get solution template '{template_name}': HTTP {response.http_response.status_code}"
)

data = json.loads(response.http_response.text())
unique_identifier = data.get("properties", {}).get("uniqueIdentifier")

if unique_identifier and unique_identifier.strip():
return unique_identifier
return template_name
Comment thread
Avisiktapatra marked this conversation as resolved.
Outdated
Loading