def Args(parser): parser.display_info.AddFormat( 'table(instance.basename():label=NAME, status)') parser.display_info.AddUriFunc( instance_groups_utils.UriFuncForListInstanceRelatedObjects) ListInstances.ZonalInstanceGroupArg = ( instance_groups_flags.MakeZonalInstanceGroupArg()) ListInstances.ZonalInstanceGroupArg.AddArgument(parser) flags.AddRegexArg(parser)
def Args(parser): parser.display_info.AddFormat(instance_groups_unmanaged_flags.LIST_FORMAT) Create.ZONAL_INSTANCE_GROUP_ARG = ( instance_groups_flags.MakeZonalInstanceGroupArg()) Create.ZONAL_INSTANCE_GROUP_ARG.AddArgument(parser, operation_type='create') parser.add_argument( '--description', help=('Specifies a textual description for the ' 'unmanaged instance group.'))
def Args(parser): RemoveInstances.ZONAL_INSTANCE_GROUP_ARG = ( instance_groups_flags.MakeZonalInstanceGroupArg()) RemoveInstances.ZONAL_INSTANCE_GROUP_ARG.AddArgument(parser) parser.add_argument( '--instances', required=True, type=arg_parsers.ArgList(min_length=1), metavar='INSTANCE', help='The names of the instances to remove from the instance group.')
def Args(parser): AddInstances.ZonalInstanceGroupArg = ( instance_groups_flags.MakeZonalInstanceGroupArg()) AddInstances.ZonalInstanceGroupArg.AddArgument(parser) parser.add_argument( '--instances', required=True, type=arg_parsers.ArgList(min_length=1), metavar='INSTANCE', help='A list of names of instances to add to the instance group. ' 'These must exist beforehand and must live in the same zone as ' 'the instance group.')
class InstanceGroupManagersDeleteZonalTest(test_base.BaseTest): def SetUp(self): self.SelectApi(API_VERSION) self.make_requests.side_effect = iter([ [], # Listed 0 Autoscalers. test_resources.MakeInstanceGroupManagers(API_VERSION), [], ]) self.autoscalers_list_request_zone_1 = [( self.compute.autoscalers, 'List', self.messages.ComputeAutoscalersListRequest( maxResults=500, project='my-project', zone='zone-1', ), )] self.autoscalers_list_request_zone_2 = [( self.compute.autoscalers, 'List', self.messages.ComputeAutoscalersListRequest( maxResults=500, project='my-project', zone='zone-2', ), )] def testBasicDelete(self): properties.VALUES.core.disable_prompts.Set(True) self.Run( 'compute instance-groups managed delete group-1 --zone zone-1') self.CheckRequests( self.autoscalers_list_request_zone_1, [(self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-1', project='my-project', zone='zone-1'))], ) def testPromptingWithYes(self): self.make_requests.side_effect = iter([ test_resources.MakeAutoscalers(API_VERSION), test_resources.MakeInstanceGroupManagers(API_VERSION), [], ]) self.WriteInput('y') self.Run(""" compute instance-groups managed delete group-1 group-2 group-3 --zone zone-1 """) self.CheckRequests( self.autoscalers_list_request_zone_1, [(self.compute.autoscalers, 'Delete', self.messages.ComputeAutoscalersDeleteRequest( autoscaler='autoscaler-1', project='my-project', zone='zone-1')), (self.compute.autoscalers, 'Delete', self.messages.ComputeAutoscalersDeleteRequest( autoscaler='autoscaler-2', project='my-project', zone='zone-1')), (self.compute.autoscalers, 'Delete', self.messages.ComputeAutoscalersDeleteRequest( autoscaler='autoscaler-3', project='my-project', zone='zone-1'))], [(self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-1', project='my-project', zone='zone-1')), (self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-2', project='my-project', zone='zone-1')), (self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-3', project='my-project', zone='zone-1'))], ) self.AssertErrContains( r'The following instance group managers will be deleted:\n' r' - [group-1] in [zone-1]\n' r' - [group-2] in [zone-1]\n' r' - [group-3] in [zone-1]') self.AssertErrContains('PROMPT_CONTINUE') def testPromptingWithNo(self): self.WriteInput('n') with self.AssertRaisesToolExceptionRegexp('Deletion aborted by user.'): self.Run(""" compute instance-groups managed delete group-1 --zone zone-1 """) self.CheckRequests() def testScopePrompting(self): self.StartPatch('googlecloudsdk.core.console.console_io.CanPrompt', return_value=True) self.make_requests.side_effect = iter([ [self.messages.Region(name='region-1')], [ self.messages.Zone(name='zone-2'), self.messages.Zone(name='zone-1') ], test_resources.MakeAutoscalers(API_VERSION), test_resources.MakeInstanceGroupManagers(API_VERSION), [], # Deleting 0 Autoscalers. ]) self.WriteInput('2\ny') self.Run(""" compute instance-groups managed delete group-1 group-2 """) self.CheckRequests( self.regions_list_request, self.zones_list_request, self.autoscalers_list_request_zone_1, [(self.compute.autoscalers, 'Delete', self.messages.ComputeAutoscalersDeleteRequest( autoscaler='autoscaler-1', project='my-project', zone='zone-1')), (self.compute.autoscalers, 'Delete', self.messages.ComputeAutoscalersDeleteRequest( autoscaler='autoscaler-2', project='my-project', zone='zone-1'))], [(self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-1', project='my-project', zone='zone-1')), (self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-2', project='my-project', zone='zone-1'))], ) def testMultipleZonesUri(self): self.make_requests.side_effect = iter([ [], # No Autoscalers in zone-1 and zone-2 test_resources.MakeInstanceGroupManagers(API_VERSION), ]) self.WriteInput('y') self.Run(""" compute instance-groups managed delete https://compute.googleapis.com/compute/{0}/projects/my-project/zones/zone-2/instanceGroupManagers/group-1 https://compute.googleapis.com/compute/{0}/projects/my-project/zones/zone-1/instanceGroupManagers/group-2 """.format(API_VERSION)) self.CheckRequests( self.autoscalers_list_request_zone_1 + self.autoscalers_list_request_zone_2, [(self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-1', project='my-project', zone='zone-2')), (self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-2', project='my-project', zone='zone-1'))], ) self.AssertErrContains( r'The following instance group managers will be deleted:\n' r' - [group-1] in [zone-2]\n' r' - [group-2] in [zone-1]') self.AssertErrContains('PROMPT_CONTINUE') def testMultipleZonesUriAndFlag(self): self.make_requests.side_effect = iter([ [], # No Autoscalers in zone-1 and zone-2 test_resources.MakeInstanceGroupManagers(API_VERSION), ]) self.WriteInput('y') self.Run(""" compute instance-groups managed delete https://compute.googleapis.com/compute/{0}/projects/my-project/zones/zone-2/instanceGroupManagers/group-1 group-2 --zone zone-1 """.format(API_VERSION)) self.CheckRequests( self.autoscalers_list_request_zone_1 + self.autoscalers_list_request_zone_2, [(self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-1', project='my-project', zone='zone-2')), (self.compute.instanceGroupManagers, 'Delete', self.messages.ComputeInstanceGroupManagersDeleteRequest( instanceGroupManager='group-2', project='my-project', zone='zone-1'))], ) self.AssertErrContains( r'The following instance group managers will be deleted:\n' r' - [group-1] in [zone-2]\n' r' - [group-2] in [zone-1]') self.AssertErrContains('PROMPT_CONTINUE') @patch('googlecloudsdk.command_lib.compute.instance_groups.flags.' 'MULTISCOPE_INSTANCE_GROUP_MANAGERS_ARG', instance_groups_flags.MakeZonalInstanceGroupArg(plural=True)) def testInvalidCollectionPath(self): properties.VALUES.core.disable_prompts.Set(True) with self.assertRaisesRegex(ValueError, 'Unknown reference type.*'): self.Run( 'compute instance-groups managed delete group-1 --zone zone-1')
def Args(parser): Describe.ZonalInstanceGroupArg = flags.MakeZonalInstanceGroupArg() Describe.ZonalInstanceGroupArg.AddArgument(parser, operation_type='describe')
def Args(parser): GetNamedPorts.ZonalInstanceGroupArg = ( instance_groups_flags.MakeZonalInstanceGroupArg()) GetNamedPorts.ZonalInstanceGroupArg.AddArgument(parser)
def Args(parser): Delete.ZonalInstanceGroupArg = flags.MakeZonalInstanceGroupArg( plural=True) Delete.ZonalInstanceGroupArg.AddArgument(parser, operation_type='delete')
def Args(parser): flags.AddNamedPortsArgs(parser) SetNamedPorts.ZONAL_INSTANCE_GROUP_ARG = flags.MakeZonalInstanceGroupArg( ) SetNamedPorts.ZONAL_INSTANCE_GROUP_ARG.AddArgument(parser)
def Args(parser): GetNamedPorts.ZonalInstanceGroupArg = ( instance_groups_flags.MakeZonalInstanceGroupArg()) GetNamedPorts.ZonalInstanceGroupArg.AddArgument(parser) parser.display_info.AddFormat('table(name, port)')
def Args(parser): ListInstances.ZonalInstanceGroupArg = ( instance_groups_flags.MakeZonalInstanceGroupArg()) ListInstances.ZonalInstanceGroupArg.AddArgument(parser) flags.AddRegexArg(parser)
def Args(parser): flags.AddNamedPortsArgs(parser) SetNamedPorts.ZonalInstanceGroupArg = flags.MakeZonalInstanceGroupArg() SetNamedPorts.ZonalInstanceGroupArg.AddArgument(parser)