Esempio n. 1
0
    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
Esempio n. 3
0
 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
Esempio n. 5
0
 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
Esempio n. 6
0
    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, )