From 573d5099fcb65211dc78eb5b8bc3d46fd96e57b7 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 3 Sep 2018 06:19:25 +0200 Subject: [PATCH] [enh] implement cli delete command --- cli.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/cli.py b/cli.py index 9103982..408efce 100644 --- a/cli.py +++ b/cli.py @@ -26,7 +26,7 @@ def require_token(): open("token", "w").write(token) -def request_api(path, domain, verb, data): +def request_api(path, domain, verb, data={}, check_return_code=True): assert verb in ("get", "post", "put", "delete") https = False @@ -43,8 +43,9 @@ def request_api(path, domain, verb, data): print(f"Error: access refused because '{response.json()['status']}'") sys.exit(1) - # TODO: real error message - assert response.status_code == 200, response.content + if check_return_code: + # TODO: real error message + assert response.status_code == 200, response.content return response @@ -80,11 +81,26 @@ def list_(all=False, domain=DOMAIN): print(f"{i['id']:4d} - {i['name']}") -def delete(job_id, domain=DOMAIN): pass +def delete(job_id, domain=DOMAIN): + response = request_api( + path=f"job/{job_id}", + verb="delete", + domain=domain, + check_return_code=False + ) + + if response.status_code == 404: + print(f"Error: no job with the id '{job_id}'") + sys.exit(1) + + assert response.status_code == 200, response.content + + def update(job_id, domain=DOMAIN): pass def stop(job_id, domain=DOMAIN): pass def resume(job_id, domain=DOMAIN): pass + if __name__ == '__main__': require_token() argh.dispatch_commands([add, list_, delete, update, stop, resume])