Exemplo n.º 1
0
  def CreateRequests(self, args):
    group_ref = self.CreateZonalReference(args.name, args.zone)

    instance_references = [
        self.CreateZonalReference(
            instance_name, group_ref.zone, resource_type='instances')
        for instance_name in args.instances]

    instance_groups_utils.ValidateInstanceInZone(instance_references,
                                                 group_ref.zone)

    instance_references = [
        self.messages.InstanceReference(instance=inst.SelfLink())
        for inst in instance_references]
    request_payload = self.messages.InstanceGroupsRemoveInstancesRequest(
        instances=instance_references)

    request = self.messages.ComputeInstanceGroupsRemoveInstancesRequest(
        instanceGroup=group_ref.Name(),
        instanceGroupsRemoveInstancesRequest=request_payload,
        zone=group_ref.zone,
        project=self.context['project']
    )

    return [request]
Exemplo n.º 2
0
    def CreateRequests(self, args):
        group_ref = (AddInstances.ZonalInstanceGroupArg.ResolveAsResource(
            args,
            self.resources,
            default_scope=None,
            scope_lister=flags.GetDefaultScopeLister(self.compute_client)))

        instance_references = []
        for instance in args.instances:
            ref = self.resources.Parse(
                instance,
                params={
                    'project': properties.VALUES.core.project.GetOrFail,
                    'zone': group_ref.zone
                },
                collection='compute.instances')
            instance_references.append(ref)

        instance_groups_utils.ValidateInstanceInZone(instance_references,
                                                     group_ref.zone)
        instance_references = [
            self.messages.InstanceReference(instance=inst.SelfLink())
            for inst in instance_references
        ]
        request_payload = self.messages.InstanceGroupsAddInstancesRequest(
            instances=instance_references)

        request = self.messages.ComputeInstanceGroupsAddInstancesRequest(
            instanceGroup=group_ref.Name(),
            instanceGroupsAddInstancesRequest=request_payload,
            zone=group_ref.zone,
            project=group_ref.project)

        return [request]
Exemplo n.º 3
0
    def CreateRequests(self, args):
        group_ref = (
            instance_groups_flags.ZONAL_INSTANCE_GROUP_ARG.ResolveAsResource(
                args,
                self.resources,
                default_scope=compute_scope.ScopeEnum.ZONE,
                scope_lister=flags.GetDefaultScopeLister(self.compute_client)))

        instance_references = []
        for instance in args.instances:
            ref = self.resources.Parse(instance,
                                       params={'zone': group_ref.zone},
                                       collection='compute.instances')
            instance_references.append(ref)

        instance_groups_utils.ValidateInstanceInZone(instance_references,
                                                     group_ref.zone)

        instance_references = [
            self.messages.InstanceReference(instance=inst.SelfLink())
            for inst in instance_references
        ]
        request_payload = self.messages.InstanceGroupsRemoveInstancesRequest(
            instances=instance_references)

        request = self.messages.ComputeInstanceGroupsRemoveInstancesRequest(
            instanceGroup=group_ref.Name(),
            instanceGroupsRemoveInstancesRequest=request_payload,
            zone=group_ref.zone,
            project=group_ref.project)

        return [request]
  def Run(self, args):
    holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
    client = holder.client

    group_ref = (
        RemoveInstances.ZONAL_INSTANCE_GROUP_ARG.ResolveAsResource(
            args, holder.resources,
            default_scope=compute_scope.ScopeEnum.ZONE,
            scope_lister=flags.GetDefaultScopeLister(client)))

    instance_references = []
    for instance in args.instances:
      ref = holder.resources.Parse(
          instance,
          params={
              'project': group_ref.project,
              'zone': group_ref.zone
          },
          collection='compute.instances')
      instance_references.append(ref)

    instance_groups_utils.ValidateInstanceInZone(instance_references,
                                                 group_ref.zone)

    instance_references = [
        client.messages.InstanceReference(instance=inst.SelfLink())
        for inst in instance_references]
    request_payload = client.messages.InstanceGroupsRemoveInstancesRequest(
        instances=instance_references)

    request = client.messages.ComputeInstanceGroupsRemoveInstancesRequest(
        instanceGroup=group_ref.Name(),
        instanceGroupsRemoveInstancesRequest=request_payload,
        zone=group_ref.zone,
        project=group_ref.project
    )

    return client.MakeRequests([(client.apitools_client.instanceGroups,
                                 'RemoveInstances', request)])