def Run(self, args): """Retrieves response with instance in the instance group.""" holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client resources = holder.resources group_ref = ( instance_groups_flags.MULTISCOPE_INSTANCE_GROUP_MANAGER_ARG. ResolveAsResource( args, holder.resources, default_scope=compute_scope.ScopeEnum.ZONE, scope_lister=compute_flags.GetDefaultScopeLister(client))) if hasattr(group_ref, 'zone'): service = client.apitools_client.instanceGroupManagers request = (client.messages. ComputeInstanceGroupManagersListManagedInstancesRequest( instanceGroupManager=group_ref.Name(), zone=group_ref.zone, project=group_ref.project)) elif hasattr(group_ref, 'region'): service = client.apitools_client.regionInstanceGroupManagers request = ( client.messages. ComputeRegionInstanceGroupManagersListManagedInstancesRequest( instanceGroupManager=group_ref.Name(), region=group_ref.region, project=group_ref.project)) errors = [] results = list( request_helper.MakeRequests(requests=[ (service, 'ListManagedInstances', request) ], http=client.apitools_client.http, batch_url=client.batch_url, errors=errors)) if errors: utils.RaiseToolException(errors) instances = instance_groups_utils.UnwrapResponse( results, 'managedInstances') instance_with_name = next( (instance for instance in instances if resources.ParseURL(instance.instance).Name() == args.instance), None) if not instance_with_name: raise ValueError('Unknown instance with name `{0}\''.format( args.name)) # Add name to instance and return it instance_with_name = encoding.MessageToDict(instance_with_name) instance_with_name['name'] = (resources.ParseURL( instance_with_name['instance']).Name()) return instance_with_name
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client resources = holder.resources igm_ref = ( instance_groups_flags.MULTISCOPE_INSTANCE_GROUP_MANAGER_ARG. ResolveAsResource)( args, resources, scope_lister=compute_flags.GetDefaultScopeLister(client), ) if igm_ref.Collection() == 'compute.instanceGroupManagers': service = client.apitools_client.instanceGroupManagers request = ( client.messages. ComputeInstanceGroupManagersListPerInstanceConfigsRequest)( instanceGroupManager=igm_ref.Name(), project=igm_ref.project, zone=igm_ref.zone, ) elif igm_ref.Collection() == 'compute.regionInstanceGroupManagers': service = client.apitools_client.regionInstanceGroupManagers request = ( client.messages. ComputeRegionInstanceGroupManagersListPerInstanceConfigsRequest )( instanceGroupManager=igm_ref.Name(), project=igm_ref.project, region=igm_ref.region, ) else: raise ValueError('Unknown reference type {0}'.format( igm_ref.Collection())) errors = [] results = list( request_helper.MakeRequests(requests=[ (service, 'ListPerInstanceConfigs', request) ], http=client.apitools_client.http, batch_url=client.batch_url, errors=errors)) if errors: utils.RaiseToolException(errors) return instance_groups_utils.UnwrapResponse(results, 'items')
def Run(self, args): """Retrieves response with instance in the instance group.""" holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client group_ref = (instance_groups_flags.MULTISCOPE_INSTANCE_GROUP_ARG. ResolveAsResource( args, holder.resources, default_scope=compute_scope.ScopeEnum.ZONE, scope_lister=flags.GetDefaultScopeLister(client))) if args.regexp: # Regexp interprested as RE2 by Instance Group API filter_expr = 'instance eq {0}'.format(args.regexp) else: filter_expr = None if group_ref.Collection() == 'compute.instanceGroups': service = client.apitools_client.instanceGroups request = client.messages.ComputeInstanceGroupsListInstancesRequest( instanceGroup=group_ref.Name(), instanceGroupsListInstancesRequest=( client.messages.InstanceGroupsListInstancesRequest()), zone=group_ref.zone, filter=filter_expr, project=group_ref.project) else: service = client.apitools_client.regionInstanceGroups request = client.messages.ComputeRegionInstanceGroupsListInstancesRequest( instanceGroup=group_ref.Name(), regionInstanceGroupsListInstancesRequest=( client.messages.RegionInstanceGroupsListInstancesRequest() ), region=group_ref.region, filter=filter_expr, project=group_ref.project) errors = [] results = client.MakeRequests(requests=[(service, 'ListInstances', request)], errors_to_collect=errors) if errors: utils.RaiseToolException(errors) return instance_groups_utils.UnwrapResponse(results, 'items')
def Run(self, args): """Retrieves response with instance in the instance group.""" holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client group_ref = (instance_groups_flags. MULTISCOPE_INSTANCE_GROUP_MANAGER_ARG.ResolveAsResource( args, holder.resources, default_scope=compute_scope.ScopeEnum.ZONE, scope_lister=flags.GetDefaultScopeLister(client))) if hasattr(group_ref, 'zone'): service = client.apitools_client.instanceGroupManagers request = (client.messages. ComputeInstanceGroupManagersListManagedInstancesRequest( instanceGroupManager=group_ref.Name(), zone=group_ref.zone, project=group_ref.project)) elif hasattr(group_ref, 'region'): service = client.apitools_client.regionInstanceGroupManagers request = ( client.messages. ComputeRegionInstanceGroupManagersListManagedInstancesRequest( instanceGroupManager=group_ref.Name(), region=group_ref.region, project=group_ref.project)) errors = [] results = list( request_helper.MakeRequests(requests=[ (service, 'ListManagedInstances', request) ], http=client.apitools_client.http, batch_url=client.batch_url, errors=errors)) if errors: utils.RaiseToolException(errors) return instance_groups_utils.UnwrapResponse(results, 'managedInstances')
def Run(self, args): """Retrieves response with instance in the instance group.""" holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client # Note: only zonal resources parsed here. group_ref = holder.resources.Parse( args.name, params={ 'project': properties.VALUES.core.project.GetOrFail, 'zone': args.zone }, collection='compute.instanceGroups') if args.regexp: filter_expr = 'instance eq {0}'.format(args.regexp) else: filter_expr = None request = client.messages.ComputeInstanceGroupsListInstancesRequest( instanceGroup=group_ref.Name(), instanceGroupsListInstancesRequest=( client.messages.InstanceGroupsListInstancesRequest()), zone=group_ref.zone, filter=filter_expr, project=group_ref.project) errors = [] results = list( request_helper.MakeRequests(requests=[ (client.apitools_client.instanceGroups, 'ListInstances', request) ], http=client.apitools_client.http, batch_url=client.batch_url, errors=errors)) if errors: utils.RaiseToolException(errors) return instance_groups_utils.UnwrapResponse(results, 'items')