def _ConstructWindowsKeyEntry(self, user, modulus, exponent, email): """Return a JSON formatted entry for 'windows-keys'.""" expire_str = time_util.CalculateExpiration(RSA_KEY_EXPIRATION_TIME_SEC) windows_key_data = { 'userName': user, 'modulus': core_encoding.Decode(modulus), 'exponent': core_encoding.Decode(exponent), 'email': email, 'expireOn': expire_str } windows_key_entry = json.dumps(windows_key_data, sort_keys=True) return windows_key_entry
def _ConstructDiagnosticsKeyEntry(self, signed_url, trace): """Generates a JSON String that is a command for the VM to extract the logs. Args: signed_url: The url where the logs can be uploaded. trace: Whether or not to take a 10 minute trace on the VM. Returns: A JSON String that can be written to the metadata server to trigger the extraction of logs. """ expire_str = time_util.CalculateExpiration(300) diagnostics_key_data = { 'signedUrl': signed_url, 'trace': trace, 'expireOn': expire_str } return json.dumps(diagnostics_key_data, sort_keys=True)
def Run(self, args): compute_holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) holder = base_classes.ComputeUserAccountsApiHolder(self.ReleaseTrack()) client = holder.client name = args.name if not name: name = gaia.GetDefaultAccountName(client.http) user_ref = holder.resources.Parse( name, params={'project': properties.VALUES.core.project.GetOrFail}, collection='clouduseraccounts.users') valid_key_types = [ 'ssh-rsa', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ssh-ed25519' ] public_keys = [] for key_file in args.public_key_files: key_text = file_utils.ReadFile(key_file, 'public-key') if key_text.split(' ', 1)[0] not in valid_key_types: raise exceptions.ToolException( 'You must specify a public key file that contains a key of a ' 'supported form. Supported forms are {0}.'.format( ', '.join(valid_key_types))) public_keys.append(key_text) formatted_expiration = time_util.CalculateExpiration(args.expire) requests = [] for key in public_keys: public_key_message = client.MESSAGES_MODULE.PublicKey( description=args.description, expirationTimestamp=formatted_expiration, key=key) request = (client.MESSAGES_MODULE. ClouduseraccountsUsersAddPublicKeyRequest( project=user_ref.project, publicKey=public_key_message, user=user_ref.Name())) requests.append((client.users, 'AddPublicKey', request)) return compute_holder.client.MakeRequests(requests)
def SetUp(self): self.queue_ref = resources.REGISTRY.Create( 'cloudtasks.projects.locations.queues', locationsId='us-central1', projectsId=self.Project(), queuesId='my-queue') self.queue_name = self.queue_ref.RelativeName() self.task_ref = resources.REGISTRY.Create( 'cloudtasks.projects.locations.queues.tasks', locationsId='us-central1', projectsId=self.Project(), queuesId='my-queue', tasksId='my-task') self.task_name = self.task_ref.RelativeName() resolve_loc_mock = self.StartObjectPatch(app, 'ResolveAppLocation') resolve_loc_mock.return_value = ( parsers.ParseLocation('us-central1').SelfLink()) self.schedule_time = time_util.CalculateExpiration(20)
def CreateRequests(self, args): name = args.name if not name: name = gaia.GetDefaultAccountName(self.http) user_ref = self.clouduseraccounts_resources.Parse( name, collection='clouduseraccounts.users') valid_key_types = [ 'ssh-rsa', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ssh-ed25519' ] public_keys = [] for key_file in args.public_key_files: key_text = file_utils.ReadFile(key_file, 'public-key') if key_text.split(' ', 1)[0] not in valid_key_types: raise exceptions.ToolException( 'You must specify a public key file that contains a key of a ' 'supported form. Supported forms are {0}.'.format( ', '.join(valid_key_types))) public_keys.append(key_text) formatted_expiration = time_util.CalculateExpiration(args.expire) requests = [] for key in public_keys: public_key_message = self.messages.PublicKey( description=args.description, expirationTimestamp=formatted_expiration, key=key) request = self.messages.ClouduseraccountsUsersAddPublicKeyRequest( project=self.project, publicKey=public_key_message, user=user_ref.Name()) requests.append(request) return requests
def SetUp(self): flags.AddCreateHttpTaskFlags(self.parser) self.schedule_time = time_util.CalculateExpiration(20)