[enh] start to work on api listing

This commit is contained in:
Laurent Peuch 2018-08-28 01:42:36 +02:00
parent 4b9b1ff98e
commit c4bda46189
2 changed files with 26 additions and 2 deletions

17
cli.py
View file

@ -45,7 +45,8 @@ def request_api(path, domain, verb, data):
# TODO: real error message
assert response.status_code == 200, response.content
assert response.content == b"ok", response.content
return response
def add(name, url_or_path, test_type="stable", yunohost_version="unstable", debian_version="stretch", revision="master", domain=DOMAIN):
@ -65,7 +66,19 @@ def add(name, url_or_path, test_type="stable", yunohost_version="unstable", debi
@named("list")
def list_(all=False, domain=DOMAIN): pass
def list_(all=False, domain=DOMAIN):
response = request_api(
path="job",
verb="get",
domain=domain,
data={
"all": all,
},
)
for i in response.json():
print(f"{i['id']:4d} - {i['name']}")
def delete(job_id, domain=DOMAIN): pass
def update(job_id, domain=DOMAIN): pass
def cancel(job_id, domain=DOMAIN): pass

11
run.py
View file

@ -384,6 +384,17 @@ async def api_new_job(request):
return response.text("ok")
@app.route("/api/job", methods=['GET'])
@require_token()
async def api_list_job(request):
query = Job.select()
if not all:
query.where(Job.state in ('scheduled', 'running'))
return response.json([model_to_dict(x) for x in query.order_by(-Job.id)])
@app.route("/api/job/<job_id>/stop", methods=['POST'])
async def api_stop_job(request, job_id):
# TODO auth or some kind