def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client apitools_client = client.apitools_client messages = client.messages resources = holder.resources ref = flags.MULTISCOPE_INSTANCE_GROUP_MANAGER_ARG.ResolveAsResource( args, resources, scope_lister=compute_flags.GetDefaultScopeLister(client)) if ref.Collection() == 'compute.instanceGroupManagers': service = apitools_client.instanceGroupManagers request_type = messages.ComputeInstanceGroupManagersGetRequest elif ref.Collection() == 'compute.regionInstanceGroupManagers': service = apitools_client.regionInstanceGroupManagers request_type = messages.ComputeRegionInstanceGroupManagersGetRequest igm = encoding.MessageToDict(service.Get(request_type(**ref.AsDict()))) annoted_igm = managed_instance_groups_utils.AddAutoscalersToMigs( migs_iterator=[igm], client=client, resources=resources, fail_when_api_not_supported=False) return list(annoted_igm)[0]
def ComputeDynamicProperties(self, args, items): """Add Autoscaler information if Autoscaler is defined for the item.""" # Items are expected to be IGMs. return managed_instance_groups_utils.AddAutoscalersToMigs( migs_iterator=items, project=self.project, compute=self.compute, http=self.http, batch_url=self.batch_url, fail_when_api_not_supported=False)
def ComputeDynamicProperties(self, args, items): """Add Autoscaler information if Autoscaler is defined for the item.""" # Items are expected to be IGMs. for mig in managed_instance_groups_utils.AddAutoscalersToMigs( migs_iterator=self.ComputeInstanceGroupSize(items=items), project=self.project, compute=self.compute, http=self.http, batch_url=self.batch_url, fail_when_api_not_supported=False): if 'autoscaler' in mig and mig['autoscaler'] is not None: mig['autoscaled'] = 'yes' else: mig['autoscaled'] = 'no' yield mig
def testAddAutoscalersToMigs(self): holder = base_classes.ComputeApiHolder(calliope_base.ReleaseTrack.GA) region = ( 'https://compute.googleapis.com/compute/v1/projects/{}/regions/' 'us-central1').format(self.Project()) migs = [{'region': region, 'name': 'my-mig'}] mig_url = ('https://compute.googleapis.com/compute/v1/projects/{}/' 'regions/us-central1/instanceGroupManagers/my-mig').format( self.Project()) autoscaler = self.messages.Autoscaler(region=region, target=mig_url) self.StartObjectPatch(managed_instance_groups_utils, 'AutoscalersForLocations', return_value=[autoscaler]) list( managed_instance_groups_utils.AddAutoscalersToMigs( iter(migs), holder.client, holder.resources)) self.assertEqual(migs[0]['autoscaler'], autoscaler)
def ComputeDynamicProperties(self, args, items): """Add Autoscaler information if Autoscaler is defined for the item.""" _ = args # Items are expected to be IGMs. items = list(items) for mig in managed_instance_groups_utils.AddAutoscalersToMigs( migs_iterator=self.ComputeInstanceGroupSize(items=items), project=self.project, compute=self.compute, http=self.http, batch_url=self.batch_url, fail_when_api_not_supported=False): if 'autoscaler' in mig and mig['autoscaler'] is not None: if (hasattr(mig['autoscaler'], 'status') and mig['autoscaler'].status == self.messages.Autoscaler.StatusValueValuesEnum.ERROR): mig['autoscaled'] = 'yes (*)' else: mig['autoscaled'] = 'yes' else: mig['autoscaled'] = 'no' yield mig
def ComputeDynamicProperties(self, args, items): """Add Autoscaler information if Autoscaler is defined for the item.""" _ = args # Items are expected to be IGMs. items = list(items) for mig in managed_instance_groups_utils.AddAutoscalersToMigs( migs_iterator=self.ComputeInstanceGroupSize(items=items), client=self.compute_client, resources=self.resources, fail_when_api_not_supported=False): if 'autoscaler' in mig and mig['autoscaler'] is not None: # status is present in autoscaler iff Autoscaler message has embedded # StatusValueValuesEnum defined. if (getattr(mig['autoscaler'], 'status', False) and mig['autoscaler'].status == self.messages.Autoscaler.StatusValueValuesEnum.ERROR): mig['autoscaled'] = 'yes (*)' self._had_errors = True else: mig['autoscaled'] = 'yes' else: mig['autoscaled'] = 'no' yield mig