コード例 #1
0
    def Run(self, args):
        compute_holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        client = compute_holder.client

        flags.ValidateServiceAccountAndScopeArgs(args)

        instance_ref = flags.INSTANCE_ARG.ResolveAsResource(
            args,
            compute_holder.resources,
            default_scope=compute_scope.ScopeEnum.ZONE,
            scope_lister=flags.GetInstanceZoneScopeLister(client))

        email = self._email(args, instance_ref, client)
        scopes = self._scopes(args, instance_ref, client)

        if scopes and not email:
            raise exceptions.ScopesWithoutServiceAccountException(
                'Can not set scopes when there is no service acoount.')

        request = client.messages.ComputeInstancesSetServiceAccountRequest(
            instancesSetServiceAccountRequest=(
                client.messages.InstancesSetServiceAccountRequest(
                    email=email, scopes=scopes)),
            project=instance_ref.project,
            zone=instance_ref.zone,
            instance=instance_ref.Name())

        return client.MakeRequests([(client.apitools_client.instances,
                                     'SetServiceAccount', request)])
コード例 #2
0
ファイル: set_scopes.py プロジェクト: eduardofacanha/Robin
    def CreateRequests(self, args):
        flags.ValidateServiceAccountAndScopeArgs(args)
        instance_ref = flags.INSTANCE_ARG.ResolveAsResource(
            args,
            self.resources,
            default_scope=compute_scope.ScopeEnum.ZONE,
            scope_lister=compute_flags.GetDefaultScopeLister(
                self.compute_client, self.project))

        email = self._email(args, instance_ref)
        scopes = self._scopes(args, instance_ref)

        if scopes and not email:
            raise exceptions.ScopesWithoutServiceAccountException(
                'Can not set scopes when there is no service acoount.')

        request = self.messages.ComputeInstancesSetServiceAccountRequest(
            instancesSetServiceAccountRequest=(
                self.messages.InstancesSetServiceAccountRequest(
                    email=email,
                    scopes=scopes,
                )),
            project=self.project,
            zone=instance_ref.zone,
            instance=instance_ref.Name())
        return [request]