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)])
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]