def main(): parser = OptionParser() parser.add_option("-m", "--master", action="store", dest="master", help="Master URI", metavar="MASTER", default=os.getenv("SW_MASTER")) parser.add_option("-i", "--id", action="store", dest="id", help="Job ID", metavar="ID", default="default") parser.add_option("-e", "--env", action="store_true", dest="send_env", help="Set this flag to send the current environment with the script as _env", default=False) (options, args) = parser.parse_args() if not options.master: parser.print_help() print >> sys.stderr, "Must specify master URI with --master" sys.exit(1) if len(args) != 1: parser.print_help() print >> sys.stderr, "Must specify one script file to execute, as argument" sys.exit(1) script_name = args[0] master_uri = options.master id = options.id print id, "STARTED", now_as_timestamp() swi_package = {"swimain": {"filename": script_name}} swi_args = {"sw_file_ref": {"__package__": "swimain"}, "start_args": args} if options.send_env: swi_args["start_env"] = dict(os.environ) new_job = skywriting.runtime.util.start_job.submit_job_with_package(swi_package, "swi", swi_args, os.getcwd(), master_uri) result = skywriting.runtime.util.start_job.await_job(new_job["job_id"], master_uri) reflist = retrieve_object_for_ref(result, "json", None) sw_return = retrieve_object_for_ref(reflist[0], "json", None) return sw_return
def main(): parser = OptionParser() parser.add_option("-m", "--master", action="store", dest="master", help="Master URI", metavar="MASTER", default=os.getenv("SW_MASTER")) parser.add_option("-s", "--skypy-stub", action="store", dest="skypy_stub", help="Path to Skypy stub.py", metavar="PATH", default=None) (options, args) = parser.parse_args() if not options.master: parser.print_help() print >> sys.stderr, "Must specify master URI with --master" sys.exit(1) master_uri = options.master script_name = args[0] script_args = args[1:] sp_package = {"skypymain": {"filename": script_name}} sp_args = {"pyfile_ref": {"__package__": "skypymain"}, "entry_point": "skypy_main", "entry_args": script_args} new_job = skywriting.runtime.util.start_job.submit_job_with_package(sp_package, "skypy", sp_args, os.getcwd(), master_uri, args) result = skywriting.runtime.util.start_job.await_job(new_job["job_id"], master_uri) reflist = retrieve_object_for_ref(result, "json", None) return reflist[0]
def simple_retrieve_object_for_ref(ref, decoder, jobid, master_uri): if isinstance(ref, SWErrorReference): raise Exception("Can't decode %s" % ref) if isinstance(ref, SW2_FutureReference) or isinstance(ref, SW2_StreamReference) or isinstance(ref, SW2_SocketStreamReference): ref = external_get_real_ref(ref, jobid, master_uri) if isinstance(ref, SWDataValue): return retrieve_object_for_ref(ref, decoder, None) elif isinstance(ref, SW2_ConcreteReference): urls = get_fetch_urls_for_ref(ref) _, content = httplib2.Http().request(urls[0]) return decoders[decoder](StringIO(content)) else: raise Exception("Don't know how to retrieve a %s" % ref)
def main(): parser = OptionParser() parser.add_option( "-m", "--master", action="store", dest="master", help="Master URI", metavar="MASTER", default=os.getenv("SW_MASTER"), ) parser.add_option( "-r", "--refs", action="store_true", dest="refs", help="Set this option to look up reference names in the master", default=False, ) parser.add_option( "-j", "--json", action="store_true", dest="json", help="Set this option to use JSON pretty printing", default=False, ) (options, args) = parser.parse_args() if options.refs: ref_ids = args for ref_id in ref_ids: # Fetch information about the ref from the master. h = httplib2.Http() _, content = h.request(urljoin(options.master, "/refs/%s" % ref_id), "GET") ref_info = simplejson.loads(content, object_hook=json_decode_object_hook) ref = ref_info["ref"] if options.json: obj = retrieve_object_for_ref(ref, "json", None) simplejson.dump(obj, sys.stdout, cls=SWReferenceJSONEncoder, indent=4) print else: fh = retrieve_object_for_ref(ref, "handle", None) for line in fh: sys.stdout.write(line) fh.close() else: urls = args for url in urls: if options.json: obj = retrieve_object_for_ref(SWURLReference([url]), "json", None) simplejson.dump(obj, sys.stdout, cls=SWReferenceJSONEncoder, indent=4) print else: fh = retrieve_object_for_ref(SWURLReference([url]), "handle", None) print fh for line in fh: sys.stdout.write(line) fh.close()