Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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