mirror of
https://github.com/newnius/YAO-docs.git
synced 2024-07-06 05:15:18 +00:00
114 lines
2.6 KiB
Python
114 lines
2.6 KiB
Python
import requests
|
|
import time
|
|
import os
|
|
import json
|
|
|
|
'''Configuration'''
|
|
BASE_URL = 'http://yao.pasalab.jluapp.com'
|
|
''''''
|
|
|
|
sess = requests.Session()
|
|
sess.headers.update({'Referer': BASE_URL})
|
|
|
|
status_map = [
|
|
'Created', # 0
|
|
'Starting', # 1
|
|
'Running', # 2
|
|
'Stopped', # 3
|
|
'Finished', # 4
|
|
'Failed', # 5
|
|
]
|
|
|
|
|
|
def login(user='', pwd=''):
|
|
# Get CSRF Token
|
|
r = sess.get(BASE_URL)
|
|
# print(r.content)
|
|
|
|
# Login
|
|
url = BASE_URL + '/service?action=user_login'
|
|
r = sess.post(url, data={})
|
|
# print(r.content)
|
|
return
|
|
|
|
|
|
def get_sys_status():
|
|
# Retrieve Status
|
|
r = sess.get(BASE_URL + '/service?action=summary_get')
|
|
print(r.content)
|
|
# b'{"jobs":{"finished":1,"running":0,"pending":0},"gpu":{"free":20,"using":0},"errno":0,"msg":"Success !"}'
|
|
|
|
# Get pool Util history
|
|
r = sess.get(BASE_URL + '/service?action=summary_get_pool_history')
|
|
# print(r.content)
|
|
return
|
|
|
|
|
|
def submit_job(job):
|
|
r = sess.post(BASE_URL + '/service?action=job_submit', data=job)
|
|
data = str(r.content, 'utf-8')
|
|
msg = json.loads(data)
|
|
print(msg)
|
|
return msg
|
|
|
|
|
|
def job_list():
|
|
print("\nList of jobs:")
|
|
r = sess.get(BASE_URL + '/service?action=job_list&who=self&sort=nobody&order=desc&offset=0&limit=10')
|
|
data = str(r.content, 'utf-8')
|
|
msg = json.loads(data)
|
|
|
|
if len(msg['jobs']) > 0:
|
|
for job in msg['jobs']:
|
|
name = job['name']
|
|
status = status_map[job['status']]
|
|
print("Status of job: {} is {}".format(name, status))
|
|
print("\n")
|
|
|
|
|
|
def job_status(job_name):
|
|
r = sess.get(BASE_URL + '/service?action=job_status&name=' + job_name)
|
|
data = str(r.content, 'utf-8')
|
|
msg = json.loads(data)
|
|
print("Status of tasks in {}:".format(job_name))
|
|
if len(msg['tasks']) > 0:
|
|
for task in msg['tasks']:
|
|
print("{} ({}) is/was running on {}".format(task['hostname'], task['status'], task['node']))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
os.environ["TZ"] = 'Asia/Shanghai'
|
|
if hasattr(time, 'tzset'):
|
|
time.tzset()
|
|
|
|
login()
|
|
get_sys_status()
|
|
|
|
tasks = [{
|
|
"name": "node1",
|
|
"image": "quickdeploy/yao-tensorflow:1.14-gpu",
|
|
"cmd": "python /workspace/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \\ --num_gpus=1 \\ --batch_size=32 \\ --model=resnet50 \\ --num_batches=200 \\ --train_dir=/tmp \\ --variable_update=parameter_server",
|
|
"cpu_number": "4",
|
|
"memory": "4096",
|
|
"gpu_number": "1",
|
|
"gpu_memory": "8192",
|
|
"is_ps": "0",
|
|
"gpu_model": "k80",
|
|
}]
|
|
# print(json.dumps(tasks))
|
|
job = {
|
|
'name': 'test',
|
|
'workspace': 'http://code.pasalab.jluapp.com/newnius/yao-job-benchmarks.git',
|
|
'cluster': 'default',
|
|
'priority': '25',
|
|
'run_before': '',
|
|
'locality': '0',
|
|
'tasks': json.dumps(tasks),
|
|
}
|
|
|
|
msg = submit_job(job)
|
|
if msg['errno'] == 0:
|
|
job_status(msg['job_name'])
|
|
|
|
job_list()
|