def CreateAutoscalerResource(self, igm_ref, args): if _IsZonalGroup(igm_ref): scope_type = 'zone' location = managed_instance_groups_utils.CreateZoneRef( self.resources, igm_ref) zones, regions = [location], None else: scope_type = 'region' location = managed_instance_groups_utils.CreateRegionRef( self.resources, igm_ref) zones, regions = None, [location] autoscaler = managed_instance_groups_utils.AutoscalerForMig( mig_name=igm_ref.Name(), autoscalers=managed_instance_groups_utils.AutoscalersForLocations( regions=regions, zones=zones, compute=self.compute, http=self.http, batch_url=self.batch_url), location=location, scope_type=scope_type) autoscaler_name = getattr(autoscaler, 'name', None) new_one = autoscaler_name is None autoscaler_name = autoscaler_name or args.name if _IsZonalGroup(igm_ref): autoscaler_resource = managed_instance_groups_utils.BuildAutoscaler( args, self.messages, igm_ref, autoscaler_name) else: autoscaler_resource = managed_instance_groups_utils.BuildAutoscaler( args, self.messages, igm_ref, autoscaler_name) return autoscaler_resource, new_one
def CreateAutoscalerResource(self, client, resources, igm_ref, args): autoscaler = managed_instance_groups_utils.AutoscalerForMigByRef( client, resources, igm_ref) autoscaler_name = getattr(autoscaler, 'name', None) new_one = autoscaler_name is None autoscaler_name = autoscaler_name or args.name autoscaler_resource = managed_instance_groups_utils.BuildAutoscaler( args, client.messages, igm_ref, autoscaler_name, autoscaler) return autoscaler_resource, new_one
def CreateAutoscalerResource(self, client, resources, igm_ref, args, mode_enabled=False, scale_down=False): autoscaler = managed_instance_groups_utils.AutoscalerForMigByRef( client, resources, igm_ref) autoscaler_name = getattr(autoscaler, 'name', None) new_one = managed_instance_groups_utils.IsAutoscalerNew(autoscaler) autoscaler_name = autoscaler_name or args.name autoscaler_resource = managed_instance_groups_utils.BuildAutoscaler( args, client.messages, igm_ref, autoscaler_name, autoscaler, mode_enabled=mode_enabled, scale_down=scale_down) return autoscaler_resource, new_one
def CreateAutoscalerResource(self, igm_ref, args): if _IsZonalGroup(igm_ref): scope_name = igm_ref.zone scope_type = 'zone' zones, regions = [scope_name], None else: scope_name = igm_ref.region scope_type = 'region' zones, regions = None, [scope_name] autoscaler = managed_instance_groups_utils.AutoscalerForMig( mig_name=igm_ref.Name(), autoscalers=managed_instance_groups_utils.AutoscalersForLocations( regions=regions, zones=zones, project=self.project, compute=self.compute, http=self.http, batch_url=self.batch_url), scope_name=scope_name, scope_type=scope_type, project=self.project) autoscaler_name = getattr(autoscaler, 'name', None) new_one = autoscaler_name is None autoscaler_name = autoscaler_name or args.name if _IsZonalGroup(igm_ref): autoscaler_resource = managed_instance_groups_utils.BuildAutoscaler( args, self.messages, igm_ref, autoscaler_name, zone=scope_name) else: autoscaler_resource = managed_instance_groups_utils.BuildAutoscaler( args, self.messages, igm_ref, autoscaler_name, region=scope_name) region_link = self.resources.Parse(scope_name, collection='compute.regions') autoscaler_resource.region = region_link.SelfLink() return autoscaler_resource, new_one
def CreateAutoscalerResource(self, igm_ref, args): zone = args.zone or igm_ref.zone autoscaler = managed_instance_groups_utils.AutoscalerForMig( mig_name=igm_ref.Name(), autoscalers=managed_instance_groups_utils.AutoscalersForLocations( regions=None, zones=[zone], project=self.project, compute=self.compute, http=self.http, batch_url=self.batch_url), scope_name=zone, scope_type='zone', project=self.project) autoscaler_name = getattr(autoscaler, 'name', None) as_ref = self.CreateZonalReference(autoscaler_name or args.name, zone) return managed_instance_groups_utils.BuildAutoscaler( args, self.messages, as_ref, igm_ref), autoscaler_name is None
def CreateRequests(self, args): managed_instance_groups_utils.ValidateAutoscalerArgs(args) igm_ref = self.CreateZonalReference( args.name, args.zone, resource_type='instanceGroupManagers') # We need the zone name, which might have been passed after prompting. # In that case, we get it from the reference. zone = args.zone or igm_ref.zone managed_instance_groups_utils.AssertInstanceGroupManagerExists( igm_ref, self.project, self.messages, self.compute, self.http, self.batch_url) autoscaler = managed_instance_groups_utils.AutoscalerForMig( mig_name=args.name, autoscalers=managed_instance_groups_utils.AutoscalersForZones( zones=[zone], project=self.project, compute=self.compute, http=self.http, batch_url=self.batch_url), zone=zone, project=self.project) autoscaler_name = getattr(autoscaler, 'name', None) as_ref = self.CreateZonalReference(autoscaler_name or args.name, zone) autoscaler_resource = managed_instance_groups_utils.BuildAutoscaler( args, self.messages, as_ref, igm_ref) if autoscaler_name is None: self._method = 'Insert' request = self.messages.ComputeAutoscalersInsertRequest( project=self.project) managed_instance_groups_utils.AdjustAutoscalerNameForCreation( autoscaler_resource) request.autoscaler = autoscaler_resource else: self._method = 'Update' request = self.messages.ComputeAutoscalersUpdateRequest( project=self.project) request.autoscaler = as_ref.Name() request.autoscalerResource = autoscaler_resource request.zone = as_ref.zone return (request, )