コード例 #1
0
  def CreateRequests(self, args):
    group_ref = instance_groups_utils.CreateInstanceGroupReference(
        scope_prompter=self, compute=self.compute, resources=self.resources,
        name=args.name, region=args.region, zone=args.zone)
    instances = instance_groups_utils.CreateInstanceReferences(
        self, self.compute_client, group_ref, args.instances)

    if group_ref.Collection() == 'compute.instanceGroupManagers':
      service = self.compute.instanceGroupManagers
      request = (
          self.messages.ComputeInstanceGroupManagersRecreateInstancesRequest(
              instanceGroupManager=group_ref.Name(),
              instanceGroupManagersRecreateInstancesRequest=(
                  self.messages.InstanceGroupManagersRecreateInstancesRequest(
                      instances=instances,
                  )
              ),
              project=self.project,
              zone=group_ref.zone,
          ))
    else:
      service = self.compute.regionInstanceGroupManagers
      request = (
          self.messages.
          ComputeRegionInstanceGroupManagersRecreateInstancesRequest(
              instanceGroupManager=group_ref.Name(),
              regionInstanceGroupManagersRecreateRequest=(
                  self.messages.RegionInstanceGroupManagersRecreateRequest(
                      instances=instances,)
              ),
              project=self.project,
              region=group_ref.region,
          ))

    return [(service, self.method, request)]
コード例 #2
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        client = holder.client

        resource_arg = instance_groups_flags.MULTISCOPE_INSTANCE_GROUP_MANAGER_ARG
        default_scope = compute_scope.ScopeEnum.ZONE
        scope_lister = flags.GetDefaultScopeLister(client)
        igm_ref = resource_arg.ResolveAsResource(args,
                                                 holder.resources,
                                                 default_scope=default_scope,
                                                 scope_lister=scope_lister)
        instances = instance_groups_utils.CreateInstanceReferences(
            holder.resources, client, igm_ref, args.instances)

        if igm_ref.Collection() == 'compute.instanceGroupManagers':
            field_name = 'instanceGroupManagersAbandonInstancesRequest'
            service = client.apitools_client.instanceGroupManagers
            requests = instance_groups_utils.SplitInstancesInRequest(
                client.messages.
                ComputeInstanceGroupManagersAbandonInstancesRequest(
                    instanceGroupManager=igm_ref.Name(),
                    instanceGroupManagersAbandonInstancesRequest=client.
                    messages.InstanceGroupManagersAbandonInstancesRequest(
                        instances=instances),
                    project=igm_ref.project,
                    zone=igm_ref.zone), field_name)
        elif igm_ref.Collection() == 'compute.regionInstanceGroupManagers':
            field_name = 'regionInstanceGroupManagersAbandonInstancesRequest'
            service = client.apitools_client.regionInstanceGroupManagers
            requests = instance_groups_utils.SplitInstancesInRequest(
                client.messages.
                ComputeRegionInstanceGroupManagersAbandonInstancesRequest(
                    instanceGroupManager=igm_ref.Name(),
                    regionInstanceGroupManagersAbandonInstancesRequest=client.
                    messages.
                    RegionInstanceGroupManagersAbandonInstancesRequest(
                        instances=instances),
                    project=igm_ref.project,
                    region=igm_ref.region,
                ), field_name)
        else:
            raise ValueError('Unknown reference type {0}'.format(
                igm_ref.Collection()))

        requests = instance_groups_utils.GenerateRequestTuples(
            service, 'AbandonInstances', requests)

        return instance_groups_utils.MakeRequestsList(client, requests,
                                                      field_name)
コード例 #3
0
  def CreateRequests(self, args):
    resource_arg = instance_groups_flags.MULTISCOPE_INSTANCE_GROUP_MANAGER_ARG
    default_scope = flags.ScopeEnum.ZONE
    scope_lister = flags.GetDefaultScopeLister(
        self.compute_client, self.project)
    igm_ref = resource_arg.ResolveAsResource(
        args, self.resources, default_scope=default_scope,
        scope_lister=scope_lister)
    instances = instance_groups_utils.CreateInstanceReferences(
        self.resources, self.compute_client, igm_ref, args.instances)

    if igm_ref.Collection() == 'compute.instanceGroupManagers':
      service = self.compute.instanceGroupManagers
      request = (
          self.messages.
          ComputeInstanceGroupManagersAbandonInstancesRequest(
              instanceGroupManager=igm_ref.Name(),
              instanceGroupManagersAbandonInstancesRequest=(
                  self.messages.InstanceGroupManagersAbandonInstancesRequest(
                      instances=instances,
                  )
              ),
              project=self.project,
              zone=igm_ref.zone,
          ))
    else:
      service = self.compute.regionInstanceGroupManagers
      request = (
          self.messages.
          ComputeRegionInstanceGroupManagersAbandonInstancesRequest(
              instanceGroupManager=igm_ref.Name(),
              regionInstanceGroupManagersAbandonInstancesRequest=(
                  self.messages.
                  RegionInstanceGroupManagersAbandonInstancesRequest(
                      instances=instances,
                  )
              ),
              project=self.project,
              region=igm_ref.region,
          ))

    return [(service, self.method, request)]
コード例 #4
0
 def CreateRequests(self, args):
   resource_arg = instance_groups_flags.ZONAL_INSTANCE_GROUP_MANAGER_ARG
   default_scope = flags.ScopeEnum.ZONE
   scope_lister = flags.GetDefaultScopeLister(
       self.compute_client, self.project)
   igm_ref = resource_arg.ResolveAsResource(
       args, self.resources, default_scope=default_scope,
       scope_lister=scope_lister)
   instances = instance_groups_utils.CreateInstanceReferences(
       self.resources, self.compute_client, igm_ref, args.instances)
   return [(self.method,
            self.messages.ComputeInstanceGroupManagersAbandonInstancesRequest(
                instanceGroupManager=igm_ref.Name(),
                instanceGroupManagersAbandonInstancesRequest=(
                    self.messages.InstanceGroupManagersAbandonInstancesRequest(
                        instances=instances,
                    )
                ),
                project=self.project,
                zone=igm_ref.zone,
            ),),]
コード例 #5
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        client = holder.client
        igm_ref = (instance_groups_flags.MULTISCOPE_INSTANCE_GROUP_MANAGER_ARG.
                   ResolveAsResource)(
                       args,
                       holder.resources,
                       default_scope=compute_scope.ScopeEnum.ZONE,
                       scope_lister=flags.GetDefaultScopeLister(client))

        update_instances_utils.ValidateIgmReference(igm_ref)
        minimal_action = update_instances_utils.ParseInstanceActionFlag(
            '--minimal-action', args.minimal_action or 'none', client.messages)
        most_disruptive_allowed_action = (
            update_instances_utils.ParseInstanceActionFlag)(
                '--most-disruptive-allowed-action',
                args.most_disruptive_allowed_action or 'replace',
                client.messages)

        instances = instance_groups_utils.CreateInstanceReferences(
            holder.resources, client, igm_ref, args.instances)
        if igm_ref.Collection() == 'compute.instanceGroupManagers':
            field_name, service, requests = self._CreateZonalApplyUpdatesRequest(
                igm_ref, instances, minimal_action,
                most_disruptive_allowed_action, client)
        elif igm_ref.Collection() == 'compute.regionInstanceGroupManagers':
            field_name, service, requests = self._CreateRegionalApplyUpdatesRequest(
                igm_ref, instances, minimal_action,
                most_disruptive_allowed_action, client)

        requests = instance_groups_utils.GenerateRequestTuples(
            service, 'ApplyUpdatesToInstances', requests)

        operations = instance_groups_utils.MakeRequestsList(
            client, requests, field_name)
        return operations