def process(oid, opts): logger.debug("Processing file %s", oid) import_time = int(time.time()) import_name = os.path.basename(opts["file_location"]) # strip dir from name file_stat = opts["stat"] size = file_stat["size"] data = None # Get the existing file info - if any if api.exists(name, oid, opts): data = api.retrieve(name, oid, opts, True) # If file info doesn't exist create new if not data: metadata = {import_time:{import_name:file_stat}} data = {"metadata":metadata, "names":set([import_name]), "size":size} # If data already exists append else: if "size" not in data: data["size"] = size data["metadata"][import_time] = {import_name:file_stat} data["names"].add(import_name) api.store(name, oid, data, opts) # Add import time tag tags = {"import_time":import_time} api.apply_tags(oid, tags) return True
def process(oid, opts): logger.debug("Processing collection %s", oid) data = {"notes":opts["notes"], "num_oids":opts["num_oids"], "name":opts["name"]} api.store(name, oid, data, opts) # Add creation time tag tags = {"creation_time":int(time.time())} api.apply_tags(oid, tags) return True
def tag_append(oid, tag, value): """ Create or append a tag:value entry for a given oid """ tags = api.get_tags(oid) if not tags or tag not in tags: # First time this tag is being applied api.apply_tags(oid, {tag:value}) return True values = tags[tag] if not isinstance(values, list): values = [values] values = set(values) if not isinstance(value, list): value = [value] values.update(value) values = list(values) api.apply_tags(oid, {tag:values}) return True