Skip to content

Commit 808644d

Browse files
authored
[Workload-Orchestration] Updated response schema for review and tsv list calls to include l1l2 state properties (#9284)
* Updated review and tsv list commands to include l1l2 in response * Hide unnecessary properties in response for review and tsv list * latestActionTriggeredBy spell fix * CLI history and version update * added separate response builder for 202 response
1 parent c110393 commit 808644d

4 files changed

Lines changed: 411 additions & 90 deletions

File tree

src/workload-orchestration/HISTORY.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
Release History
44
===============
55

6+
4.1.0
7+
++++++
8+
* Added currentStage and latestActionTriggeredBy fields in response of below commands:
9+
* ``az workload-orchestration target review`` - Post request to review configuration.
10+
* ``az workload-orchestration target solution-revision-list`` - List all revisions of a solution deployed on a target.
11+
612
4.0.0
713
++++++
814
* Added new bulk management commands:

src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_review_solution_version.py

Lines changed: 179 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,6 @@ def _build_arguments_schema(cls, *args, **kwargs):
7676
max_length=24,
7777
),
7878
)
79-
# Remove these parameters (v2025_06_01)
80-
# _args_schema.solution_template = AAZStrArg(
81-
# options=["--solution-name","--solution-template-name"],
82-
# arg_group="Body",
83-
# help="Solution Template Name",
84-
# required=True,
85-
# )
86-
# _args_schema.solution_template_version = AAZStrArg(
87-
# options=["--solution-version","--solution-template-version"],
88-
# arg_group="Body",
89-
# help="Solution Template Version Name",
90-
# required=True,
91-
# )
92-
93-
# Add new parameter (v2025_06_01)
9479
_args_schema.solution_template_version_id = AAZStrArg(
9580
options=["--solution-template-version-id"],
9681
arg_group="Body",
@@ -109,6 +94,7 @@ def _build_arguments_schema(cls, *args, **kwargs):
10994
def _build_args_solution_dependency_parameter_create(cls, _schema):
11095
if cls._args_solution_dependency_parameter_create is not None:
11196
_schema.dependencies = cls._args_solution_dependency_parameter_create.dependencies
97+
_schema.solution_instance_name = cls._args_solution_dependency_parameter_create.solution_instance_name
11298
_schema.solution_template_id = cls._args_solution_dependency_parameter_create.solution_template_id
11399
_schema.solution_template_version = cls._args_solution_dependency_parameter_create.solution_template_version
114100
_schema.solution_version_id = cls._args_solution_dependency_parameter_create.solution_version_id
@@ -122,6 +108,14 @@ def _build_args_solution_dependency_parameter_create(cls, _schema):
122108
options=["dependencies"],
123109
help="Solution dependencies",
124110
)
111+
solution_dependency_parameter_create.solution_instance_name = AAZStrArg(
112+
options=["solution-instance-name"],
113+
help="Solution Instance Name",
114+
fmt=AAZStrArgFormat(
115+
pattern="^(?!v-)(?!.*-v-)[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?)*$",
116+
max_length=24,
117+
),
118+
)
125119
solution_dependency_parameter_create.solution_template_id = AAZStrArg(
126120
options=["solution-template-id"],
127121
help="Solution Template Id",
@@ -144,6 +138,7 @@ def _build_args_solution_dependency_parameter_create(cls, _schema):
144138
cls._build_args_solution_dependency_parameter_create(dependencies.Element)
145139

146140
_schema.dependencies = cls._args_solution_dependency_parameter_create.dependencies
141+
_schema.solution_instance_name = cls._args_solution_dependency_parameter_create.solution_instance_name
147142
_schema.solution_template_id = cls._args_solution_dependency_parameter_create.solution_template_id
148143
_schema.solution_template_version = cls._args_solution_dependency_parameter_create.solution_template_version
149144
_schema.solution_version_id = cls._args_solution_dependency_parameter_create.solution_version_id
@@ -176,7 +171,7 @@ def __call__(self, *args, **kwargs):
176171
return self.client.build_lro_polling(
177172
self.ctx.args.no_wait,
178173
session,
179-
self.on_200,
174+
self.on_202,
180175
self.on_error,
181176
lro_options={"final-state-via": "location"},
182177
path_format_arguments=self.url_parameters,
@@ -257,11 +252,6 @@ def content(self):
257252
)
258253
_builder.set_prop("solutionDependencies", AAZListType, ".solution_dependencies")
259254
_builder.set_prop("solutionInstanceName", AAZStrType, ".solution_instance_name")
260-
# Remove these properties (v2025_06_01)
261-
# _builder.set_prop("solutionTemplate", AAZStrType, ".solution_template", typ_kwargs={"flags": {"required": True}})
262-
# _builder.set_prop("solutionTemplateVersion", AAZStrType, ".solution_template_version", typ_kwargs={"flags": {"required": True}})
263-
264-
# Add new property (v2025_06_01)
265255
_builder.set_prop("solutionTemplateVersionId", AAZStrType, ".solution_template_version_id", typ_kwargs={"flags": {"required": True}})
266256

267257
solution_dependencies = _builder.get(".solutionDependencies")
@@ -278,6 +268,14 @@ def on_200(self, session):
278268
schema_builder=self._build_schema_on_200
279269
)
280270

271+
def on_202(self, session):
272+
data = self.deserialize_http_content(session)
273+
self.ctx.set_var(
274+
"instance",
275+
data["properties"],
276+
schema_builder=self._build_schema_on_200
277+
)
278+
281279
_schema_on_200 = None
282280

283281
@classmethod
@@ -295,20 +293,10 @@ def _build_schema_on_200(cls):
295293
_schema_on_200.extended_location = AAZObjectType(
296294
serialized_name="extendedLocation",
297295
)
298-
299-
_schema_on_200.resourceId = AAZStrType(
300-
serialized_name="resourceId",
301-
flags={"read_only": True},
302-
)
303-
_schema_on_200.status = AAZStrType(
304-
flags={"read_only": True},
305-
)
306-
_schema_on_200.startTime = AAZStrType(
307-
serialized_name="startTime",
296+
_schema_on_200.id = AAZStrType(
308297
flags={"read_only": True},
309298
)
310-
_schema_on_200.endTime = AAZStrType(
311-
serialized_name="endTime",
299+
_schema_on_200.name = AAZStrType(
312300
flags={"read_only": True},
313301
)
314302
_schema_on_200.properties = AAZObjectType()
@@ -329,66 +317,87 @@ def _build_schema_on_200(cls):
329317
)
330318

331319
properties = cls._schema_on_200.properties
332-
properties.properties = AAZObjectType()
333-
properties.extendedLocation = AAZObjectType(
334-
serialized_name="extendedLocation",
320+
properties.action_type = AAZStrType(
321+
serialized_name="actionType",
322+
flags={"read_only": True},
335323
)
336-
properties.eTag = AAZStrType(
337-
serialized_name="eTag",
324+
properties.configuration = AAZStrType(
325+
flags={"read_only": True},
326+
)
327+
properties.current_stage = AAZObjectType(
328+
serialized_name="currentStage",
338329
flags={"read_only": True},
339330
)
340-
properties.id = AAZStrType(
331+
_ReviewSolutionVersionHelper._build_schema_stage_map_read(properties.current_stage)
332+
properties.error_details = AAZObjectType(
333+
serialized_name="errorDetails",
341334
flags={"read_only": True},
342335
)
343-
properties.name = AAZStrType(
336+
_ReviewSolutionVersionHelper._build_schema_error_detail_read(properties.error_details)
337+
properties.external_validation_id = AAZStrType(
338+
serialized_name="externalValidationId",
344339
flags={"read_only": True},
345340
)
346-
properties.type = AAZStrType(
341+
properties.latest_action_triggered_by = AAZStrType(
342+
serialized_name="latestActionTriggeredBy",
347343
flags={"read_only": True},
348344
)
349-
350-
nested_properties = properties.properties
351-
nested_properties.configuration = AAZStrType(
345+
properties.latest_action_tracking_uri = AAZStrType(
346+
serialized_name="latestActionTrackingUri",
352347
flags={"read_only": True},
353348
)
354-
nested_properties.provisioning_state = AAZStrType(
349+
properties.provisioning_state = AAZStrType(
355350
serialized_name="provisioningState",
356351
flags={"read_only": True},
357352
)
358-
nested_properties.review_id = AAZStrType(
353+
properties.review_id = AAZStrType(
359354
serialized_name="reviewId",
360355
flags={"read_only": True},
361356
)
362-
nested_properties.revision = AAZIntType(
357+
properties.revision = AAZIntType(
363358
flags={"read_only": True},
364359
)
365-
nested_properties.solution_dependencies = AAZListType(
360+
properties.solution_dependencies = AAZListType(
366361
serialized_name="solutionDependencies",
367362
flags={"read_only": True},
368363
)
369-
nested_properties.solution_instance_name = AAZStrType(
364+
properties.solution_instance_name = AAZStrType(
370365
serialized_name="solutionInstanceName",
371366
flags={"read_only": True},
372367
)
373-
nested_properties.solution_template_version_id = AAZStrType(
368+
properties.solution_template_version_id = AAZStrType(
374369
serialized_name="solutionTemplateVersionId",
375370
flags={"read_only": True},
376371
)
377-
nested_properties.specification = AAZFreeFormDictType(
372+
properties.specification = AAZDictType(
378373
flags={"required": True},
379374
)
380-
nested_properties.state = AAZStrType(
375+
# properties.stages = AAZListType(
376+
# flags={"read_only": True},
377+
# )
378+
properties.state = AAZStrType(
381379
flags={"read_only": True},
382380
)
383-
nested_properties.target_display_name = AAZStrType(
381+
properties.target_display_name = AAZStrType(
384382
serialized_name="targetDisplayName",
385383
flags={"read_only": True},
386384
)
385+
properties.target_level_configuration = AAZStrType(
386+
serialized_name="targetLevelConfiguration",
387+
flags={"read_only": True},
388+
)
387389

388-
solution_dependencies = nested_properties.solution_dependencies
390+
solution_dependencies = cls._schema_on_200.properties.solution_dependencies
389391
solution_dependencies.Element = AAZObjectType()
390392
_ReviewSolutionVersionHelper._build_schema_solution_dependency_read(solution_dependencies.Element)
391393

394+
specification = cls._schema_on_200.properties.specification
395+
specification.Element = AAZAnyType()
396+
397+
# stages = cls._schema_on_200.properties.stages
398+
# stages.Element = AAZObjectType()
399+
# _ReviewSolutionVersionHelper._build_schema_stage_map_read(stages.Element)
400+
392401
system_data = cls._schema_on_200.system_data
393402
system_data.created_at = AAZStrType(
394403
serialized_name="createdAt",
@@ -420,6 +429,7 @@ def _build_schema_solution_dependency_parameter_create(cls, _builder):
420429
if _builder is None:
421430
return
422431
_builder.set_prop("dependencies", AAZListType, ".dependencies")
432+
_builder.set_prop("solutionInstanceName", AAZStrType, ".solution_instance_name")
423433
_builder.set_prop("solutionTemplateId", AAZStrType, ".solution_template_id")
424434
_builder.set_prop("solutionTemplateVersion", AAZStrType, ".solution_template_version")
425435
_builder.set_prop("solutionVersionId", AAZStrType, ".solution_version_id")
@@ -429,12 +439,71 @@ def _build_schema_solution_dependency_parameter_create(cls, _builder):
429439
if dependencies is not None:
430440
cls._build_schema_solution_dependency_parameter_create(dependencies.set_elements(AAZObjectType, "."))
431441

442+
_schema_error_detail_read = None
443+
444+
@classmethod
445+
def _build_schema_error_detail_read(cls, _schema):
446+
if cls._schema_error_detail_read is not None:
447+
_schema.additional_info = cls._schema_error_detail_read.additional_info
448+
_schema.code = cls._schema_error_detail_read.code
449+
_schema.details = cls._schema_error_detail_read.details
450+
_schema.message = cls._schema_error_detail_read.message
451+
_schema.target = cls._schema_error_detail_read.target
452+
return
453+
454+
cls._schema_error_detail_read = _schema_error_detail_read = AAZObjectType(
455+
flags={"read_only": True}
456+
)
457+
458+
error_detail_read = _schema_error_detail_read
459+
error_detail_read.additional_info = AAZListType(
460+
serialized_name="additionalInfo",
461+
flags={"read_only": True},
462+
)
463+
error_detail_read.code = AAZStrType(
464+
flags={"read_only": True},
465+
)
466+
error_detail_read.details = AAZListType(
467+
flags={"read_only": True},
468+
)
469+
error_detail_read.message = AAZStrType(
470+
flags={"read_only": True},
471+
)
472+
error_detail_read.target = AAZStrType(
473+
flags={"read_only": True},
474+
)
475+
476+
additional_info = _schema_error_detail_read.additional_info
477+
additional_info.Element = AAZObjectType()
478+
479+
_element = _schema_error_detail_read.additional_info.Element
480+
_element.info = AAZDictType(
481+
flags={"read_only": True},
482+
)
483+
_element.type = AAZStrType(
484+
flags={"read_only": True},
485+
)
486+
487+
info = _schema_error_detail_read.additional_info.Element.info
488+
info.Element = AAZAnyType()
489+
490+
details = _schema_error_detail_read.details
491+
details.Element = AAZObjectType()
492+
cls._build_schema_error_detail_read(details.Element)
493+
494+
_schema.additional_info = cls._schema_error_detail_read.additional_info
495+
_schema.code = cls._schema_error_detail_read.code
496+
_schema.details = cls._schema_error_detail_read.details
497+
_schema.message = cls._schema_error_detail_read.message
498+
_schema.target = cls._schema_error_detail_read.target
499+
432500
_schema_solution_dependency_read = None
433501

434502
@classmethod
435503
def _build_schema_solution_dependency_read(cls, _schema):
436504
if cls._schema_solution_dependency_read is not None:
437505
_schema.dependencies = cls._schema_solution_dependency_read.dependencies
506+
_schema.solution_instance_name = cls._schema_solution_dependency_read.solution_instance_name
438507
_schema.solution_template_version_id = cls._schema_solution_dependency_read.solution_template_version_id
439508
_schema.solution_version_id = cls._schema_solution_dependency_read.solution_version_id
440509
_schema.target_id = cls._schema_solution_dependency_read.target_id
@@ -444,6 +513,9 @@ def _build_schema_solution_dependency_read(cls, _schema):
444513

445514
solution_dependency_read = _schema_solution_dependency_read
446515
solution_dependency_read.dependencies = AAZListType()
516+
solution_dependency_read.solution_instance_name = AAZStrType(
517+
serialized_name="solutionInstanceName",
518+
)
447519
solution_dependency_read.solution_template_version_id = AAZStrType(
448520
serialized_name="solutionTemplateVersionId",
449521
flags={"required": True},
@@ -462,9 +534,62 @@ def _build_schema_solution_dependency_read(cls, _schema):
462534
cls._build_schema_solution_dependency_read(dependencies.Element)
463535

464536
_schema.dependencies = cls._schema_solution_dependency_read.dependencies
537+
_schema.solution_instance_name = cls._schema_solution_dependency_read.solution_instance_name
465538
_schema.solution_template_version_id = cls._schema_solution_dependency_read.solution_template_version_id
466539
_schema.solution_version_id = cls._schema_solution_dependency_read.solution_version_id
467540
_schema.target_id = cls._schema_solution_dependency_read.target_id
468541

542+
_schema_stage_map_read = None
543+
544+
@classmethod
545+
def _build_schema_stage_map_read(cls, _schema):
546+
if cls._schema_stage_map_read is not None:
547+
_schema.child_stages = cls._schema_stage_map_read.child_stages
548+
_schema.display_state = cls._schema_stage_map_read.display_state
549+
_schema.end_time = cls._schema_stage_map_read.end_time
550+
# _schema.stage = cls._schema_stage_map_read.stage
551+
_schema.start_time = cls._schema_stage_map_read.start_time
552+
# _schema.status = cls._schema_stage_map_read.status
553+
return
554+
555+
cls._schema_stage_map_read = _schema_stage_map_read = AAZObjectType(
556+
flags={"read_only": True}
557+
)
558+
559+
stage_map_read = _schema_stage_map_read
560+
stage_map_read.child_stages = AAZListType(
561+
serialized_name="childStages",
562+
flags={"read_only": True},
563+
)
564+
stage_map_read.display_state = AAZStrType(
565+
serialized_name="displayState",
566+
flags={"read_only": True},
567+
)
568+
stage_map_read.end_time = AAZStrType(
569+
serialized_name="endTime",
570+
flags={"read_only": True},
571+
)
572+
# stage_map_read.stage = AAZStrType(
573+
# flags={"read_only": True},
574+
# )
575+
stage_map_read.start_time = AAZStrType(
576+
serialized_name="startTime",
577+
flags={"read_only": True},
578+
)
579+
# stage_map_read.status = AAZStrType(
580+
# flags={"read_only": True},
581+
# )
582+
583+
child_stages = _schema_stage_map_read.child_stages
584+
child_stages.Element = AAZObjectType()
585+
cls._build_schema_stage_map_read(child_stages.Element)
586+
587+
_schema.child_stages = cls._schema_stage_map_read.child_stages
588+
_schema.display_state = cls._schema_stage_map_read.display_state
589+
_schema.end_time = cls._schema_stage_map_read.end_time
590+
# _schema.stage = cls._schema_stage_map_read.stage
591+
_schema.start_time = cls._schema_stage_map_read.start_time
592+
# _schema.status = cls._schema_stage_map_read.status
593+
469594

470595
__all__ = ["ReviewSolutionVersion"]

0 commit comments

Comments
 (0)