def take_action(self, parsed_args): LOG.debug('take_action({0})'.format(parsed_args)) client = self.app.client_manager.artifact af_id = utils.get_artifact_id(client, parsed_args) if not parsed_args.blob_property: parsed_args.blob_property = _default_blob_property( parsed_args.type_name) data = { 'url': parsed_args.url, 'md5': parsed_args.md5, 'sha1': parsed_args.sha1, 'sha256': parsed_args.sha256 } client.artifacts.add_external_location(af_id, parsed_args.blob_property, data, type_name=parsed_args.type_name) data = client.artifacts.get(af_id, type_name=parsed_args.type_name) data_to_display = {'blob_property': parsed_args.blob_property} if '/' in parsed_args.blob_property: dict_name, __, key_name = parsed_args.blob_property.partition('/') data_to_display.update(data[dict_name][key_name]) else: data_to_display.update(data[parsed_args.blob_property]) return self.dict2columns(data_to_display)
def take_action(self, parsed_args): LOG.debug('take_action({0})'.format(parsed_args)) client = self.app.client_manager.artifact af_id = utils.get_artifact_id(client, parsed_args) if not parsed_args.blob_property: parsed_args.blob_property = _default_blob_property( parsed_args.type_name) if parsed_args.file is None: if sys.stdin.isatty(): raise exc.CommandError('Blob file should be specified or ' 'explicitly connected to stdin') blob = sys.stdin else: blob = open(parsed_args.file, 'rb') if parsed_args.progress: blob = progressbar.VerboseFileWrapper(blob) client.artifacts.upload_blob(af_id, parsed_args.blob_property, blob, content_type=parsed_args.content_type, type_name=parsed_args.type_name) data = client.artifacts.get(af_id, type_name=parsed_args.type_name) data_to_display = {'blob_property': parsed_args.blob_property} if '/' in parsed_args.blob_property: dict_name, __, key_name = parsed_args.blob_property.partition('/') data_to_display.update(data[dict_name][key_name]) else: data_to_display.update(data[parsed_args.blob_property]) return self.dict2columns(data_to_display)
def take_action(self, parsed_args): LOG.debug('take_action({0})'.format(parsed_args)) client = self.app.client_manager.artifact af_id = glare_utils.get_artifact_id(client, parsed_args) data = client.artifacts.remove_tag( af_id, tag_value=parsed_args.tag, type_name=parsed_args.type_name) return print_artifact(client, data, parsed_args.type_name)
def take_action(self, parsed_args): LOG.debug('take_action({0})'.format(parsed_args)) prop = {} for datum in parsed_args.property: key, value = datum.split('=', 1) prop[key] = value for datum in parsed_args.list: key, value = datum.split('=', 1) value = strutils.split_by_commas(value) prop[key] = value for datum in parsed_args.dict: key, value = datum.split('=', 1) value = strutils.split_by_commas(value) prop[key] = {} for elem in value: k, v = elem.split(':', 1) prop[key][k] = v client = self.app.client_manager.artifact af_id = glare_utils.get_artifact_id(client, parsed_args) data = client.artifacts.update( af_id, type_name=parsed_args.type_name, remove_props=parsed_args.remove_property, **prop) return print_artifact(client, data, parsed_args.type_name)
def take_action(self, parsed_args): LOG.debug('take_action({0})'.format(parsed_args)) client = self.app.client_manager.artifact af_id = utils.get_artifact_id(client, parsed_args) if not parsed_args.blob_property: parsed_args.blob_property = _default_blob_property( parsed_args.type_name) client.artifacts.remove_external_location( af_id, parsed_args.blob_property, type_name=parsed_args.type_name)
def take_action(self, parsed_args): LOG.debug('take_action({0})'.format(parsed_args)) client = self.app.client_manager.artifact if not parsed_args.blob_property: parsed_args.blob_property = _default_blob_property( parsed_args.type_name) af_id = utils.get_artifact_id(client, parsed_args) data = client.artifacts.download_blob(af_id, parsed_args.blob_property, type_name=parsed_args.type_name) if parsed_args.progress: data = progressbar.VerboseFileWrapper(data) if not (sys.stdout.isatty() and parsed_args.file is None): utils.save_blob(data, parsed_args.file) else: msg = ('No redirection or local file specified for downloaded ' 'blob. Please specify a local file with --file to save ' 'downloaded blob or redirect output to another source.') utils.exit(msg)
def take_action(self, parsed_args): LOG.debug('take_action({0})'.format(parsed_args)) client = self.app.client_manager.artifact af_id = glare_utils.get_artifact_id(client, parsed_args) client.artifacts.delete(af_id, type_name=parsed_args.type_name)