def main_script():
    ch = logging.StreamHandler(stream=sys.stdout)
    ch.setLevel(logging.DEBUG)

    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    ch.setFormatter(formatter)
    logger.root.addHandler(ch)
    logger.root.setLevel(logging.DEBUG)

    args = sys.argv
    if len(args) not in (4,):
        print "Usage: %s <entries file> <working directory> <script>" % (args[0])
        print """Where entries file contains:
        [
{"class": "data_entry",
 "data": {"file1": {"class": "file_object",
   "file_name": null,
   "mime_type": null}},
 "dataset": null,
 "id": null,
 "location_offset": null,
 "timestamp": "2013-03-20T09:13:41.567Z"}
        ]"""
        return(1)
    
    entries_file = args[1]
    cwd = args[2]
    
    script = args[3]
    
    # Validate parameters
    if not os.path.exists(entries_file):
        print "Config file not found: %s"%(entries_file)
        return(1) 
    if not os.path.exists(cwd) and os.path.isdir(cwd):
        print "Working directory does not exist"
        return(1)

    # Create config object
    m = Marshaller()
    with open(entries_file) as f:
        results = json.load(f)
        results = m.dict_to_obj(results)

    print "Initial results"
    print "---------------"
    for result in results:
        print str(result)
        
    if script != None:
        with open(script) as f:
            script = f.read()
        results = run_script(script, cwd, results)
        
        print "Processed results"
        print "-----------------"
        for result in results:
            print str(result)

    return 0
示例#2
0
def main_script():
    ch = logging.StreamHandler(stream=sys.stdout)
    ch.setLevel(logging.DEBUG)

    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    ch.setFormatter(formatter)
    logger.root.addHandler(ch)
    logger.root.setLevel(logging.DEBUG)

    args = sys.argv
    if len(args) not in (4, ):
        print "Usage: %s <entries file> <working directory> <script>" % (
            args[0])
        print """Where entries file contains:
        [
{"class": "data_entry",
 "data": {"file1": {"class": "file_object",
   "file_name": null,
   "mime_type": null}},
 "dataset": null,
 "id": null,
 "location_offset": null,
 "timestamp": "2013-03-20T09:13:41.567Z"}
        ]"""
        return (1)

    entries_file = args[1]
    cwd = args[2]

    script = args[3]

    # Validate parameters
    if not os.path.exists(entries_file):
        print "Config file not found: %s" % (entries_file)
        return (1)
    if not os.path.exists(cwd) and os.path.isdir(cwd):
        print "Working directory does not exist"
        return (1)

    # Create config object
    m = Marshaller()
    with open(entries_file) as f:
        results = json.load(f)
        results = m.dict_to_obj(results)

    print "Initial results"
    print "---------------"
    for result in results:
        print str(result)

    if script != None:
        with open(script) as f:
            script = f.read()
        results = run_script(script, cwd, results)

        print "Processed results"
        print "-----------------"
        for result in results:
            print str(result)

    return 0
def main_ingress():
    ch = logging.StreamHandler(stream=sys.stdout)
    ch.setLevel(logging.DEBUG)

    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    ch.setFormatter(formatter)
    logger.root.addHandler(ch)
    logger.root.setLevel(logging.DEBUG)

    args = sys.argv
    if len(args) not in (3,4):
        print "Usage: %s <config file> <working directory>"%(args[0])
        print """Where config file contains:
        {
        "class":"INGESTER_CLASS",
        "state":{...},
        "parameters":{...},
        "config":{...}
        }"""
        return(1)
    
    cfg_file = args[1]
    cwd = args[2]
    
    script = args[3] if len(args) > 3 else None
    
    # Validate parameters
    if not os.path.exists(cfg_file):
        print "Config file not found: %s"%(cfg_file)
        return(1) 
    if not os.path.exists(cwd) and os.path.isdir(cwd):
        print "Working directory does not exist"
        return(1)
    with open(sys.argv[1], "r") as f:
        cfg = json.load(f)
    if "class" not in cfg or "state" not in cfg or "parameters" not in cfg or "config" not in cfg:
        print "Config file not valid"
        return(1)
    
    # Create config object
    m = Marshaller()

    data_source_do = m.class_for(cfg["class"])()
    for k in cfg["config"]:
        setattr(data_source_do, k, cfg["config"][k])

    data_source = create_data_source(data_source_do, cfg["state"], cfg["parameters"])

    results = data_source.fetch(cwd)
    print "Initial results"
    print "---------------"
    for result in results:
        print str(result)
        
    if script != None:
        with open(script) as f:
            script = f.read()
        results = run_script(script, cwd, results)
        
        print "Processed results"
        print "-----------------"
        for result in results:
            print str(result)

    with open(cfg_file, "wb") as _cfg: json.dump(cfg, _cfg)
    return 0
示例#4
0
def main_ingress():
    ch = logging.StreamHandler(stream=sys.stdout)
    ch.setLevel(logging.DEBUG)

    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    ch.setFormatter(formatter)
    logger.root.addHandler(ch)
    logger.root.setLevel(logging.DEBUG)

    args = sys.argv
    if len(args) not in (3, 4):
        print "Usage: %s <config file> <working directory>" % (args[0])
        print """Where config file contains:
        {
        "class":"INGESTER_CLASS",
        "state":{...},
        "parameters":{...},
        "config":{...}
        }"""
        return (1)

    cfg_file = args[1]
    cwd = args[2]

    script = args[3] if len(args) > 3 else None

    # Validate parameters
    if not os.path.exists(cfg_file):
        print "Config file not found: %s" % (cfg_file)
        return (1)
    if not os.path.exists(cwd) and os.path.isdir(cwd):
        print "Working directory does not exist"
        return (1)
    with open(sys.argv[1], "r") as f:
        cfg = json.load(f)
    if "class" not in cfg or "state" not in cfg or "parameters" not in cfg or "config" not in cfg:
        print "Config file not valid"
        return (1)

    # Create config object
    m = Marshaller()

    data_source_do = m.class_for(cfg["class"])()
    for k in cfg["config"]:
        setattr(data_source_do, k, cfg["config"][k])

    data_source = create_data_source(data_source_do, cfg["state"],
                                     cfg["parameters"])

    results = data_source.fetch(cwd)
    print "Initial results"
    print "---------------"
    for result in results:
        print str(result)

    if script != None:
        with open(script) as f:
            script = f.read()
        results = run_script(script, cwd, results)

        print "Processed results"
        print "-----------------"
        for result in results:
            print str(result)

    with open(cfg_file, "wb") as _cfg:
        json.dump(cfg, _cfg)
    return 0