Skip to content

Commit 41969a2

Browse files
authored
[ServiceFabric] az sf managed-node-type update: Add parameters --vm-size and --tags (#31844)
1 parent 3a1450d commit 41969a2

5 files changed

Lines changed: 10236 additions & 9 deletions

File tree

src/azure-cli/azure/cli/command_modules/servicefabric/_help.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,12 @@
565565
- name: Update placement properties of the node type. This will overwrite older placement properties if any.
566566
text: >
567567
az sf managed-node-type update -g testRG -c testCluster -n snt --placement-property NodeColor=Red SomeProperty=6
568+
- name: Update vm size of the node type. This will initiate an in-place swap of the vm size.
569+
text: >
570+
az sf managed-node-type update -g testRG -c testCluster -n snt --vm-size Standard_DS2_v2
571+
- name: Update the node type tags.
572+
text: >
573+
az sf managed-node-type update -g testRG -c testCluster -n snt --tags key1=value1 key2=value2
568574
"""
569575

570576
helps['sf managed-node-type delete'] = """

src/azure-cli/azure/cli/command_modules/servicefabric/_params.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,9 @@ def load_arguments(self, _): # pylint: disable=too-many-statements
312312

313313
with self.argument_context('sf managed-node-type') as c:
314314
c.argument('node_type_name', options_list=['-n', '--name', '--node-type-name'], help='node type name.')
315-
c.argument('instance_count', help='essage = "The number of nodes in the node type.')
315+
316+
with self.argument_context('sf managed-node-type create') as c:
317+
c.argument('instance_count', help='"The number of nodes in the node type.')
316318
c.argument('primary', arg_type=get_three_state_flag(), help='Specify if the node type is primary. On this node type will run system services. Only one node type should be marked as primary. Primary node type cannot be deleted or changed for existing clusters.')
317319
c.argument('disk_size', type=int, options_list=['--disk-size', '--data-disk-size'], help='Disk size for each vm in the node type in GBs.', default=100)
318320
c.argument('disk_type', arg_type=get_enum_type(DiskType), options_list=['--disk-type', '--data-disk-type'],
@@ -334,6 +336,18 @@ def load_arguments(self, _): # pylint: disable=too-many-statements
334336
c.argument('is_stateless', arg_type=get_three_state_flag(), help='Indicates if the node type can only host Stateless workloads.', default=False)
335337
c.argument('multiple_placement_groups', options_list=['--multiple-placement-groups', '--multi-place-groups'], arg_type=get_three_state_flag(),
336338
help='Indicates if scale set associated with the node type can be composed of multiple placement groups.', default=False)
339+
c.argument('tags', arg_type=tags_type)
340+
341+
with self.argument_context('sf managed-node-type update') as c:
342+
c.argument('instance_count', help='"The number of nodes in the node type.')
343+
c.argument('application_start_port', options_list=['--application-start-port', '--app-start-port'], help='Application start port of a range of ports.')
344+
c.argument('application_end_port', options_list=['--application-end-port', '--app-end-port'], help='Application End port of a range of ports.')
345+
c.argument('ephemeral_start_port', help='Ephemeral start port of a range of ports.')
346+
c.argument('ephemeral_end_port', help='Ephemeral end port of a range of ports.')
347+
c.argument('vm_size', help='The size of virtual machines in the pool. All virtual machines in a pool are the same size.')
348+
c.argument('capacity', arg_type=capacity)
349+
c.argument('placement_property', arg_type=placement_property)
350+
c.argument('tags', arg_type=tags_type)
337351

338352
with self.argument_context('sf managed-node-type node') as c:
339353
c.argument('node_name', nargs='+', help='list of target nodes to perform the operation.')

src/azure-cli/azure/cli/command_modules/servicefabric/operations/managed_node_types.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ def create_node_type(cmd,
4444
capacity=None,
4545
placement_property=None,
4646
is_stateless=False,
47-
multiple_placement_groups=False):
47+
multiple_placement_groups=False,
48+
tags=None):
4849

4950
# set defult parameters
5051
if disk_size is None:
@@ -78,7 +79,8 @@ def create_node_type(cmd,
7879
capacities=capacity,
7980
placement_properties=placement_property,
8081
is_stateless=is_stateless,
81-
multiple_placement_groups=multiple_placement_groups)
82+
multiple_placement_groups=multiple_placement_groups,
83+
tags=tags)
8284

8385
if application_start_port and application_end_port:
8486
new_node_type.application_ports = EndpointRangeDescription(start_port=application_start_port,
@@ -103,12 +105,14 @@ def update_node_type(cmd,
103105
cluster_name,
104106
node_type_name,
105107
instance_count=None,
108+
vm_size=None,
106109
application_start_port=None,
107110
application_end_port=None,
108111
ephemeral_start_port=None,
109112
ephemeral_end_port=None,
110113
capacity=None,
111-
placement_property=None):
114+
placement_property=None,
115+
tags=None):
112116
try:
113117
node_type = client.node_types.get(resource_group_name, cluster_name, node_type_name)
114118

@@ -129,6 +133,12 @@ def update_node_type(cmd,
129133
if placement_property is not None:
130134
node_type.placement_properties = placement_property
131135

136+
if vm_size is not None:
137+
node_type.vm_size = vm_size
138+
139+
if tags is not None:
140+
node_type.tags = tags
141+
132142
poller = client.node_types.begin_create_or_update(resource_group_name, cluster_name, node_type_name, node_type)
133143
return LongRunningOperation(cmd.cli_ctx)(poller)
134144
except HttpResponseError as ex:

0 commit comments

Comments
 (0)