def CreateRequests(self, args): managed_instance_groups_utils.ValidateAutoscalerArgs(args) igm_ref = self.CreateGroupReference(args) service = self.GetAutoscalerServiceForGroup(igm_ref) managed_instance_groups_utils.AssertInstanceGroupManagerExists( igm_ref, self.project, self.compute, self.http, self.batch_url) autoscaler_resource, is_new = self.CreateAutoscalerResource( igm_ref, args) if is_new: method = 'Insert' request = service.GetRequestType(method)(project=self.project) managed_instance_groups_utils.AdjustAutoscalerNameForCreation( autoscaler_resource) request.autoscaler = autoscaler_resource else: method = 'Update' request = service.GetRequestType(method)(project=self.project) request.autoscaler = autoscaler_resource.name request.autoscalerResource = autoscaler_resource self.ScopeRequest(request, igm_ref) return ((service, method, request), )
def CreateRequests(self, 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), project=self.project, zone=zone) if autoscaler is None: raise managed_instance_groups_utils.ResourceNotFoundException( 'The managed instance group is not autoscaled.') as_ref = self.CreateZonalReference(autoscaler.name, zone) request = self.messages.ComputeAutoscalersDeleteRequest( project=self.project) request.zone = zone request.autoscaler = as_ref.Name() return (request, )
def CreateRequests(self, args): igm_ref = self.CreateGroupReference(args) service = self.GetAutoscalerServiceForGroup(igm_ref) managed_instance_groups_utils.AssertInstanceGroupManagerExists( igm_ref, self.project, self.compute, self.http, self.batch_url) autoscaler = self.GetAutoscalerResource(igm_ref, args) request = service.GetRequestType(self.method)( project=self.project, autoscaler=autoscaler.name) self.ScopeRequest(request, igm_ref) return [( service, self.method, request, )]
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, )