def show(opts, args): """Show script details""" mojo = Mojo(**opts) script = mojo.get_script(args.script) if mojo.unauthorized: print("Authentication failed") else: print_script(script)
def reload_jojo(opts): """Reload the Jojo""" mojo = Mojo(**opts) result = mojo.reload() if result is True: print("Reload successful!") elif result is False: print("Authentication failed") elif type(result) == int: print( "The Jojo responded with an unexpected status code: {}". format(result) )
def list_scripts(opts): """List available scripts""" mojo = Mojo(**opts) if mojo.unauthorized: print("Authentication failed") else: if opts["boolean"] is not None and opts["tags"] is not None: if opts["boolean"] == "and": param = "tags" elif opts["boolean"] == "or": param = "any_tags" elif opts["boolean"] == "not": param = "not_tags" scripts = mojo.get_scripts(param, opts["tags"]) for script in sorted(scripts): print_script(mojo.get_script(script)) print("") else: for script in sorted(mojo.scripts): print(script)
def run(opts, args): """Run a script""" mojo = Mojo(**opts) # Parse CLI-given parameters params = {} for param in args.params: broken = param.split("=") params[broken[0]] = broken[1] resp = mojo.run(args.script, params) if mojo.auth and mojo.unauthorized: print("Authentication failed") else: print("Status Code: {}".format(resp.status_code)) print("Headers:") for header in resp.headers: print(" {}: {}".format(header, resp.headers[header])) j = resp.json() print("Script return code: {}".format(j['retcode'])) if "stderr" in j: print("Stderr:") if type(j["stderr"]) is unicode: print(j["stderr"]) else: for line in j["stderr"]: print(" {}".format(line)) if "stdout" in j: print("Stdout:") if type(j["stdout"]) is unicode: print(j["stdout"]) else: for line in j["stdout"]: print(" {}".format(line)) if "return_values" in j and len(j["return_values"]) > 0: print("Return Values:") for key in sorted(j["return_values"]): print(" {}: {}".format(key, j["return_values"][key]))