def curieapi_empty(request, tmpdir): if request.param.startswith("git"): url = request.param + str(tmpdir) + "/git" elif request.param.startswith("mongodb"): url = "%s_%i" % (request.param, time.time()) else: raise NotImplemented p = subprocess.Popen(["curieconf_server", "--dbpath", url]) t = time.time() while time.time() - t < 10: s = socket.socket() try: s.connect(API_ADDRESS) except ConnectionRefusedError: try: status = p.wait(0.05) except subprocess.TimeoutExpired: pass else: raise Exception("curieconf_server stopped with status %r" % status) except: raise else: break print("started") yield confclient.get_api(API_BASE) print("stopped") p.kill() p.wait()
def main_options(output:str=typer.Option("json", "--output", "-o", help="Output format: json, yaml"), baseurl:str=typer.Option(os.environ.get("CURIECONF_BASE_URL","http://localhost:5000/api/v1/"), "--base-url", "-u", help="Base url for API"), ): state.output = output state.api = confclient.get_api(baseurl)
def main(args=None): import argparse parser = argparse.ArgumentParser() parser.add_argument( "--base-url", default=os.environ.get("CURIECONF_BASE_URL", "http://confserver/api/v1/"), ) parser.add_argument("--task-db-name", default=os.environ.get("CURIETASKER_DB_NAME", "tasks")) parser.add_argument("--task-file", type=argparse.FileType("r"), default=None) parser.add_argument("--verbose", "-v", action="count", default=3) parser.add_argument("--quiet", "-q", action="count", default=0) parser.add_argument("--debug", "-d", action="store_true", default=False) subparsers = parser.add_subparsers(dest="commandd", required=True) p_start = subparsers.add_parser("start", help="start the tasker loop") p_start.set_defaults(func=start) p_start.add_argument("--timemark", default=datetime.datetime.now()) p_runtask = subparsers.add_parser("runtask", help="run a single task") p_runtask.set_defaults(func=runtask) p_runtask.add_argument("taskid") options = parser.parse_args(args) options.api = confclient.get_api(options.base_url) options.verbosity = (1 if options.debug else max( 1, 50 + 10 * (options.quiet - options.verbose))) logging.basicConfig( format="%(asctime)s: %(levelname)-5s: %(name)s: %(message)s", level=options.verbosity, ) options.func(options)