def add_project_ssh_key(self): """ Update project SSH private key. Add new key to project's common instance metadata. :return: REST response with operation responsible for the sshKeys addition to project metadata process and its status """ common_instance_metadata = self.get_common_instance_metadata() if common_instance_metadata.get('items') is None: item = [{self.KEY_NAME: self.KEY_VALUE, 'value': utils.get_key_user_string(self.user, self.public_key)}] common_instance_metadata['items'] = item else: item = utils.get_item_from_gcp_response( self.KEY_NAME, self.KEY_VALUE, common_instance_metadata) key = utils.get_key_user_string(self.user, self.public_key) if key not in item['value']: item['value'] = '{0}\n{1}'.format(item['value'], key) self.logger.info( 'Add sshKey {0} to project {1} metadata'.format( self.public_key, self.project)) return self.discovery.projects().setCommonInstanceMetadata( project=self.project, body=common_instance_metadata).execute()
def add_project_ssh_key(self): """ Update project SSH private key. Add new key to project's common instance metadata. :return: REST response with operation responsible for the sshKeys addition to project metadata process and its status """ common_instance_metadata = self.get_common_instance_metadata() if common_instance_metadata.get('items') is None: item = [{ self.KEY_NAME: self.KEY_VALUE, 'value': utils.get_key_user_string(self.user, self.public_key) }] common_instance_metadata['items'] = item else: item = utils.get_item_from_gcp_response(self.KEY_NAME, self.KEY_VALUE, common_instance_metadata) key = utils.get_key_user_string(self.user, self.public_key) if key not in item['value']: item['value'] = '{0}\n{1}'.format(item['value'], key) self.logger.info('Add sshKey {0} to project {1} metadata'.format( self.public_key, self.project)) return self.discovery.projects().setCommonInstanceMetadata( project=self.project, body=common_instance_metadata).execute()
def add_ssh_key(**kwargs): key = ctx.target.instance.runtime_properties[constants.PUBLIC_KEY] user = ctx.target.instance.runtime_properties[constants.USER] key_user_string = utils.get_key_user_string(user, key + ' ' + user) previous_keys = ctx.source.instance.runtime_properties.get(constants.SSHKEY) ctx.source.instance.runtime_properties[constants.SSHKEY] = \ previous_keys + '\n' + key_user_string if previous_keys else key_user_string ctx.logger.info('sshKeys are: {0}' .format(ctx.source.instance.runtime_properties[constants.SSHKEY]))