-
Notifications
You must be signed in to change notification settings - Fork 1.5k
2026 03 02 preview cli #9647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
2026 03 02 preview cli #9647
Changes from all commits
37f27ea
a8b13a6
26a8691
bcdb32f
8cbacc5
3a72a2a
80b2d6a
67236e4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -30,13 +30,13 @@ | |||||||
| from azext_fleet.constants import SUPPORTED_GATE_STATES_FILTERS | ||||||||
| from azext_fleet.constants import SUPPORTED_GATE_STATES_PATCH | ||||||||
| from azext_fleet.constants import FLEET_1P_APP_ID | ||||||||
| from azext_fleet.vendored_sdks.v2026_02_01_preview.models import ( | ||||||||
| from azext_fleet.vendored_sdks.v2026_03_02_preview.models import ( | ||||||||
| PropagationPolicy, | ||||||||
| PlacementProfile, | ||||||||
| PlacementV1ClusterResourcePlacementSpec, | ||||||||
| PlacementV1PlacementPolicy, | ||||||||
| PropagationType, | ||||||||
| PlacementType | ||||||||
| PlacementType, | ||||||||
| ) | ||||||||
|
|
||||||||
| logger = get_logger(__name__) | ||||||||
|
|
@@ -381,8 +381,12 @@ def update_fleet_member(cmd, | |||||||
| def list_fleet_member(cmd, # pylint: disable=unused-argument | ||||||||
| client, | ||||||||
| resource_group_name, | ||||||||
| fleet_name): | ||||||||
| return client.list_by_fleet(resource_group_name, fleet_name) | ||||||||
| fleet_name, | ||||||||
| cluster_mesh_profile=None): | ||||||||
| filter_expr = None | ||||||||
| if cluster_mesh_profile: | ||||||||
| filter_expr = f"clusterMeshProfile eq {cluster_mesh_profile}" | ||||||||
|
||||||||
| filter_expr = f"clusterMeshProfile eq {cluster_mesh_profile}" | |
| escaped_profile = str(cluster_mesh_profile).replace("'", "''") | |
| filter_expr = f"clusterMeshProfile eq '{escaped_profile}'" |
Copilot
AI
Mar 24, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New cluster mesh profile commands and the --what-if diff logic introduce non-trivial behavior (model construction, server-side filtering, and client-side diffing) but there are no accompanying tests under azext_fleet/tests/latest to validate it. Adding unit tests for filter construction/quoting and basic what-if diff output would help prevent regressions.
Copilot
AI
Mar 24, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cluster mesh member filtering builds $filter expressions without quoting the mesh profile name. These comparisons are against string fields, so the value should be quoted (and escaped) to avoid invalid OData syntax and incorrect server-side filtering.
Copilot
AI
Mar 24, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The what-if implementation also constructs $filter values without quoting the mesh profile name. This will likely break the list calls (and can change semantics if the name contains special characters). Quote/escape the value consistently with the other filter usage.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FLEET_BASE_URLis hard-coded to the public Azure Resource Manager endpoint. This will break the extension in sovereign clouds (Azure Government/China/Stack) where the ARM endpoint differs. Prefer deriving the base URL fromcli_ctx.cloud.endpoints.resource_manager(or lettingget_mgmt_service_clientsupply it) instead of a constant.