API文档

简介

Xiaomi Cloud-ML项目暴露API访问接口,可以通过API、SDK或命令行工具访问Xiaomi Cloud-ML服务的完整功能。

Train Job API

查看所有训练任务(GET /cloud_ml/v1/train)

URL参数格式:无。

Header格式:

Header名称 类型 是否必需 描述
X-Xiaomi-Timestamp string 请求的时间戳
X-Xiaomi-Content-MD5 string POST请求内容的MD5
X-Xiaomi-Secret-Key-Id string 用户Access key
Authorization string 请求的签名

POST数据格式:无。

输入格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝执行 403 {"error": True, "message": "xxx"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. "org_id": self.org_id,
  5. "org_name": self.org_name,
  6. "job_name": self.job_name,
  7. "module_name": self.module_name,
  8. "trainer_uri": self.trainer_uri,
  9. "job_args": self.job_args,
  10. "cpu_limit": self.cpu_limit,
  11. "memory_limit": self.memory_limit,
  12. "gpu_limit": self.gpu_limit,
  13. "cluster_name": self.cluster_name,
  14. "cluster_env_var": self.cluster_env_var,
  15. "service_port": str(self.service_port),
  16. "software": self.software,
  17. "version": self.version,
  18. "state": self.state,
  19. "create_time": str(self.create_time),
  20. "update_time": str(self.update_time),
  21. "volume_type": self.volume_type,
  22. "volume_path": self.volume_path,
  23. "mount_path": self.mount_path,
  24. "mount_read_only": str(self.mount_read_only),
  25. "prepare_command": self.prepare_command,
  26. "finish_command": self.finish_command
  27. }
  28. ]
  29. }

创建训练任务(POST /cloud_ml/v1/train)

URL参数格式:同上。

Header格式:同上。

POST数据样例:

  1. {
  2. "job_name": "linear1",
  3. "module_name": "tainer.task",
  4. "trainer_uri": "fds://cloud-ml-test/linear/trainer-1.0.0.tar.gz",
  5. "job_args": "--max_epochs=200 --optimizer ftrl", (optional)
  6. "cpu_limit": 0.5, (optional)
  7. "memory_limit": "100M", (optional)
  8. "gpu_limit": 0, (optional)
  9. "ps_count": 2, (optional)
  10. "worker_count": 3 (optional)
  11. }
描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Invalid argument: xxx."}
资源不足 413 {"error": True, "message": "xxx"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "job_name": self.job_name,
  5. "module_name": self.module_name,
  6. "trainer_uri": self.trainer_uri,
  7. "job_args": self.job_args,
  8. "cpu_limit": self.cpu_limit,
  9. "memory_limit": self.memory_limit,
  10. "gpu_limit": self.gpu_limit,
  11. "cluster_name": self.cluster_name,
  12. "cluster_env_var": self.cluster_env_var,
  13. "service_port": str(self.service_port),
  14. "software": self.software,
  15. "version": self.version,
  16. "state": self.state,
  17. "create_time": str(self.create_time),
  18. "update_time": str(self.update_time),
  19. "volume_type": self.volume_type,
  20. "volume_path": self.volume_path,
  21. "mount_path": self.mount_path,
  22. "mount_read_only": str(self.mount_read_only),
  23. "prepare_command": self.prepare_command,
  24. "finish_command": self.finish_command
  25. }

查看训练任务详情(GET /cloud_ml/v1/train/$job_name)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 {"error": True, "message": “xxx”}
拒绝请求 403 {"error": True, "message": "Invalid argument: xxx."}
资源不存在 404 { "error": True, "message": "TrainJob doesn't exist"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "job_name": self.job_name,
  5. "module_name": self.module_name,
  6. "trainer_uri": self.trainer_uri,
  7. "job_args": self.job_args,
  8. "cpu_limit": self.cpu_limit,
  9. "memory_limit": self.memory_limit,
  10. "gpu_limit": self.gpu_limit,
  11. "cluster_name": self.cluster_name,
  12. "cluster_env_var": self.cluster_env_var,
  13. "service_port": str(self.service_port),
  14. "software": self.software,
  15. "version": self.version,
  16. "state": self.state,
  17. "create_time": str(self.create_time),
  18. "update_time": str(self.update_time),
  19. "volume_type": self.volume_type,
  20. "volume_path": self.volume_path,
  21. "mount_path": self.mount_path,
  22. "mount_read_only": str(self.mount_read_only),
  23. "prepare_command": self.prepare_command,
  24. "finish_command": self.finish_command
  25. }

删除训练任务(DELETE /cloud_ml/v1/train/$job_name)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 {"message": "Successfully request to delete train job."}
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter"}
资源不存在 404 {"error": True, "message": "TrainJob doesn't exist"}
内部错误 503 { "error": True, "message": "Exception: xxx"}

查看训练任务日志(GET /cloud_ml/v1/train/$job_name/logs)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 {"logs": "xxx"}
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝执行 403 {"error": True, "message": "xxx"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

查看训练任务事件信息(GET /cloud_ml/v1/train/$job_name/events)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

输入格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝执行 403 {"error": True, "message": "xxx"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. 'count': 1,
  5. 'firstTimestamp': '2017-02-20T06:16:39Z',
  6. 'lastTimestamp': '2017-02-20T06:16:39Z',
  7. 'source':
  8. {
  9. 'component': 'default-scheduler'
  10. },
  11. 'reason': 'Scheduled',
  12. 'involvedObject':
  13. {
  14. 'kind': 'Pod',
  15. 'uid': '23cbc120-f734-11e6-9702-02601838e5ba',
  16. 'namespace': 'default',
  17. 'apiVersion': 'v1',
  18. 'resourceVersion': '419556',
  19. 'name': 'de-999-dev4-061636-4150936070-5tgzu'
  20. },
  21. 'message': 'Successfully assigned de-999-dev4-061636-4150936070-5tgzu to minikubevm',
  22. 'type': 'Normal',
  23. 'metadata':
  24. {
  25. 'uid': '23cd70e3-f734-11e6-9702-02601838e5ba',
  26. 'namespace': 'default',
  27. 'resourceVersion': '419563',
  28. 'creationTimestamp': '2017-02-20T06:16:39Z',
  29. 'selfLink': '/api/v1/namespaces/default/events/de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045',
  30. 'name': 'de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045'
  31. }
  32. }
  33. ]
  34. }

Model Service API

查看所有模型服务(GET /cloud_ml/v1/model)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter."}
资源不存在 404 {"error": True, "message": "ModelService doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. "org_id": self.org_id,
  5. "org_name": self.org_name,
  6. "model_name": self.model_name,
  7. "model_version": self.model_version,
  8. "model_uri": self.model_uri,
  9. "service_port": str(self.service_port),
  10. "cpu_limit": self.cpu_limit,
  11. "memory_limit": self.memory_limit,
  12. "replicas": self.replicas
  13. "state": self.state,
  14. "create_time": str(self.create_time),
  15. "update_time": str(self.update_time),
  16. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.service_port),
  17. "prepare_command": self.prepare_command,
  18. "finish_command": self.finish_command
  19. }
  20. ]
  21. }

创建模型服务(POST /cloud_ml/v1/model)

URL参数格式:同上。

Header格式:同上。

POST数据样例:

  1. {
  2. "model_name": "linear1",
  3. "model_version": "v1",
  4. "model_uri": "fds://cloud-ml-test/linear_model1/",
  5. "cpu_limit": 0.5, (optional)
  6. "memory_limit": "100M", (optional)
  7. "gpu_limit": 0, (optional)
  8. "replicas": 3, (optional)
  9. }

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Invalid argument: xxx."}
资源不足 413 {"error": True, "message": "xxx"}
内部错误 503 {"error": True, "message": "Failed to create model or consume quota in XX"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "model_name": self.model_name,
  5. "model_version": self.model_version,
  6. "model_uri": self.model_uri,
  7. "service_port": str(self.service_port),
  8. "cpu_limit": self.cpu_limit,
  9. "memory_limit": self.memory_limit,
  10. "replicas": self.replicas
  11. "state": self.state,
  12. "create_time": str(self.create_time),
  13. "update_time": str(self.update_time),
  14. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.service_port),
  15. "prepare_command": self.prepare_command,
  16. "finish_command": self.finish_command
  17. }

查看模型服务详情(GET /cloud_ml/v1/model/$model_name/$model_version)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 { "error": True, "message": "Need org_id parameter."}
资源不存在 404 {"error": True, "message": "ModelService doesn't exist"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "model_name": self.model_name,
  5. "model_version": self.model_version,
  6. "model_uri": self.model_uri,
  7. "service_port": str(self.service_port),
  8. "cpu_limit": self.cpu_limit,
  9. "memory_limit": self.memory_limit,
  10. "replicas": self.replicas
  11. "state": self.state,
  12. "create_time": str(self.create_time),
  13. "update_time": str(self.update_time),
  14. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.service_port),
  15. "prepare_command": self.prepare_command,
  16. "finish_command": self.finish_command
  17. }

删除模型服务(DELETE /cloud_ml/v1/model/$model_name/$model_version)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 {"message": "Successfully request to delete model service."}
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter."}
资源不存在 404 {"error": True, "message": "ModelService doesn't exist"}
内部错误 503 {"error": True, "message": "Fail to delete model service: xxx, exception: xxx"}

查看模型服务日志(GET /cloud_ml/v1/model/$model_name/$model_version/logs)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 {"data": [{}]
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝执行 403 {"error": True, "message": "xxx"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

查看模型服务事件信息(GET /cloud_ml/v1/model/$model_name/$model_version/events)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

输入格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝执行 403 {"error": True, "message": "xxx"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. 'count': 1,
  5. 'firstTimestamp': '2017-02-20T06:16:39Z',
  6. 'lastTimestamp': '2017-02-20T06:16:39Z',
  7. 'source':
  8. {
  9. 'component': 'default-scheduler'
  10. },
  11. 'reason': 'Scheduled',
  12. 'involvedObject':
  13. {
  14. 'kind': 'Pod',
  15. 'uid': '23cbc120-f734-11e6-9702-02601838e5ba',
  16. 'namespace': 'default',
  17. 'apiVersion': 'v1',
  18. 'resourceVersion': '419556',
  19. 'name': 'de-999-dev4-061636-4150936070-5tgzu'
  20. },
  21. 'message': 'Successfully assigned de-999-dev4-061636-4150936070-5tgzu to minikubevm',
  22. 'type': 'Normal',
  23. 'metadata':
  24. {
  25. 'uid': '23cd70e3-f734-11e6-9702-02601838e5ba',
  26. 'namespace': 'default',
  27. 'resourceVersion': '419563',
  28. 'creationTimestamp': '2017-02-20T06:16:39Z',
  29. 'selfLink': '/api/v1/namespaces/default/events/de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045',
  30. 'name': 'de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045'
  31. }
  32. }
  33. ]
  34. }

Dev environment API

查看所有开发环境(GET /cloud_ml/v1/dev)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

输出格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter."}
资源不存在 404 {"error": True, "message": "DevEnv doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. "org_id": self.org_id,
  5. "org_name": self.org_name,
  6. "dev_name": self.dev_name,
  7. "password": self.password,
  8. "notebook_port": str(self.notebook_port),
  9. "ssh_port": str(self.ssh_port),
  10. "tensorboard_port": str(self.tensorboard_port),
  11. "cpu_limit": self.cpu_limit,
  12. "memory_limit": self.memory_limit,
  13. "state": self.state,
  14. "create_time": str(self.create_time),
  15. "update_time": str(self.update_time),
  16. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.notebook_port)},
  17. "ssh_address": settings.K8S_NODEPORT_SERVER + ":" + str(self.ssh_port)
  18. }
  19. ]
  20. }

创建开发环境(POST /cloud_ml/v1/dev)

URL参数格式:同上。

Header格式:同上。

POST数据样例:

  1. {
  2. "dev_name": "dev1",
  3. "password": "password1",
  4. "cpu_limit": 0.5, (optional)
  5. "memory_limit": "100M", (optional)
  6. "gpu_limit": 0, (optional)
  7. }

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "xxxX"}
资源不存在 404 {"error": True, "message": "DevEnv doesn't exist"}
资源不足 413 {"error": True, "message": "Quota not enough"}
内部错误 503 {"error": True, "message": "Failed to create dev or consume quota in XX, Except: XX"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "dev_name": self.dev_name,
  5. "password": self.password,
  6. "notebook_port": str(self.notebook_port),
  7. "ssh_port": str(self.ssh_port),
  8. "tensorboard_port": str(self.tensorboard_port),
  9. "cpu_limit": self.cpu_limit,
  10. "memory_limit": self.memory_limit,
  11. "state": self.state,
  12. "create_time": str(self.create_time),
  13. "update_time": str(self.update_time),
  14. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.notebook_port),
  15. "ssh_address": settings.K8S_NODEPORT_SERVER + ":" + str(self.ssh_port)
  16. }

查看开发环境详情(GET /cloud_ml/v1/dev/$dev_name)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter."}
资源不存在 404 {"error": True, "message": "DevEnv doesn't exist"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "dev_name": self.dev_name,
  5. "password": self.password,
  6. "notebook_port": str(self.notebook_port),
  7. "ssh_port": str(self.ssh_port),
  8. "tensorboard_port": str(self.tensorboard_port),
  9. "cpu_limit": self.cpu_limit,
  10. "memory_limit": self.memory_limit,
  11. "state": self.state,
  12. "create_time": str(self.create_time),
  13. "update_time": str(self.update_time),
  14. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.notebook_port),
  15. "ssh_address": settings.K8S_NODEPORT_SERVER + ":" + str(self.ssh_port)
  16. }

删除开发环境(DELETE /cloud_ml/v1/dev/$dev_name)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 {"message": "Successfully request to delete train job."}
认证失败 401 {"error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter."}
资源不存在 404 {"error": True, "message": "DevEnv doesn't exist"}
内部错误 503 { "error": True, "message": "Fail to delete dev env: xxx, exception: xxx"}

查看开发环境事件信息(GET /cloud_ml/v1/dev/$dev_name/events)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参考下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝执行 403 {"error": True, "message": "xxx"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. 'count': 1,
  5. 'firstTimestamp': '2017-02-20T06:16:39Z',
  6. 'lastTimestamp': '2017-02-20T06:16:39Z',
  7. 'source':
  8. {
  9. 'component': 'default-scheduler'
  10. },
  11. 'reason': 'Scheduled',
  12. 'involvedObject':
  13. {
  14. 'kind': 'Pod',
  15. 'uid': '23cbc120-f734-11e6-9702-02601838e5ba',
  16. 'namespace': 'default',
  17. 'apiVersion': 'v1',
  18. 'resourceVersion': '419556',
  19. 'name': 'de-999-dev4-061636-4150936070-5tgzu'
  20. },
  21. 'message': 'Successfully assigned de-999-dev4-061636-4150936070-5tgzu to minikubevm',
  22. 'type': 'Normal',
  23. 'metadata':
  24. {
  25. 'uid': '23cd70e3-f734-11e6-9702-02601838e5ba',
  26. 'namespace': 'default',
  27. 'resourceVersion': '419563',
  28. 'creationTimestamp': '2017-02-20T06:16:39Z',
  29. 'selfLink': '/api/v1/namespaces/default/events/de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045',
  30. 'name': 'de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045'
  31. }
  32. }
  33. ]
  34. }

Tensorboard Service API

查看所有模型服务(GET /cloud_ml/v1/tensorboard)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. "org_id": self.org_id,
  5. "org_name": self.org_name,
  6. "tensorboard_name": self.tensorboard_name,
  7. "logdir": self.logdir,
  8. "service_port": str(self.service_port),
  9. "state": self.state,
  10. "create_time": str(self.create_time),
  11. "update_time": str(self.update_time),
  12. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.service_port)
  13. }
  14. ]
  15. }

创建模型服务(POST /cloud_ml/v1/tensorboard)

URL参数格式:同上。

Header格式:同上。

POST数据样例:

  1. {
  2. "tensorboard_name": "mnist",
  3. "logdir": "fds://cloudml-tensorboard-test/mnist_logs",
  4. }

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Invalid argument: xxx."}
资源不存在 404 {"error": True, "message": "TensorboardService doesn't exist"}
资源不足 413 {"error": True, "message": "Quota not enough"}
内部错误 503 { "error": True, "message": "Failed to create tensorboard or consume quota in XX"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "tensorboard_name": self.tensorboard_name,
  5. "logdir": self.logdir,
  6. "service_port": str(self.service_port),
  7. "state": self.state,
  8. "create_time": str(self.create_time),
  9. "update_time": str(self.update_time),
  10. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.service_port)
  11. }

查看模型服务详情(GET /cloud_ml/v1/tensorboard/$tensorboard_name)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter."}
资源不存在 404 { "error": True, "message": "TensorboardService doesn't exist"}

成功返回结果:

  1. {
  2. "org_id": self.org_id,
  3. "org_name": self.org_name,
  4. "tensorboard_name": self.tensorboard_name,
  5. "logdir": self.logdir,
  6. "service_port": str(self.service_port),
  7. "state": self.state,
  8. "create_time": str(self.create_time),
  9. "update_time": str(self.update_time),
  10. "address": settings.K8S_NODEPORT_SERVER + ":" + str(self.service_port)
  11. }

删除模型服务(DELETE /cloud_ml/v1/tensorboard/$tensorboard_name)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 {"message": "Successfully request to delete tensorboard service."}
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
资源不存在 404 { "error": True, "message": "TensorboardService doesn't exist"}
内部错误 503 { "error": True, "message": "Fail to delete tensorboard service: xxx, exception: xxx"}

查看Tensorboard服务事件信息(GET /cloud_ml/v1/tensorboard/$tensorboard_name/events)

URL参数格式:无。

Header格式:同上。

POST数据格式:无。

输入格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝执行 403 {"error": True, "message": "xxx"}
资源不存在 404 {"error": True, "message": "Train job doesn't exist"}

成功返回结果:

  1. {
  2. "data": [
  3. {
  4. 'count': 1,
  5. 'firstTimestamp': '2017-02-20T06:16:39Z',
  6. 'lastTimestamp': '2017-02-20T06:16:39Z',
  7. 'source':
  8. {
  9. 'component': 'default-scheduler'
  10. },
  11. 'reason': 'Scheduled',
  12. 'involvedObject':
  13. {
  14. 'kind': 'Pod',
  15. 'uid': '23cbc120-f734-11e6-9702-02601838e5ba',
  16. 'namespace': 'default',
  17. 'apiVersion': 'v1',
  18. 'resourceVersion': '419556',
  19. 'name': 'de-999-dev4-061636-4150936070-5tgzu'
  20. },
  21. 'message': 'Successfully assigned de-999-dev4-061636-4150936070-5tgzu to minikubevm',
  22. 'type': 'Normal',
  23. 'metadata':
  24. {
  25. 'uid': '23cd70e3-f734-11e6-9702-02601838e5ba',
  26. 'namespace': 'default',
  27. 'resourceVersion': '419563',
  28. 'creationTimestamp': '2017-02-20T06:16:39Z',
  29. 'selfLink': '/api/v1/namespaces/default/events/de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045',
  30. 'name': 'de-999-dev4-061636-4150936070-5tgzu.14a4ea4e5db78045'
  31. }
  32. }
  33. ]
  34. }

Quota API

查看所有Quota信息(GET /cloud_ml/v1/quota)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
认证失败 401 { "error": True, "message": "Unauthorized: signature is wrong"}
拒绝请求 403 {"error": True, "message": "Need org_id parameter."}
资源不存在 404 { "error": True, "message": "Quota of 999 doesn't exist!"}
请求错误 405 { "error": True, "Support POST/GET only"}

成功返回结果:

  1. [
  2. {
  3. 'train_memory_quota': '10G 0M 0.0K',
  4. 'train_memory_used': '2G 952M 0.0K',
  5. 'train_cpu_quota': '2000.0',
  6. 'train_cpu_used': '14.4',
  7. 'train_gpu_quota': '0',
  8. 'train_gpu_used': '0',
  9. 'model_memory_quota': '1000G 0M 0.0K',
  10. 'model_memory_used': '1G 500M 0.0K',
  11. 'model_cpu_quota': '10.0',
  12. 'model_cpu_used': '3.5'
  13. 'model_gpu_quota': '0',
  14. 'model_gpu_used': '0',
  15. 'dev_memory_quota': '10G 0M 0.0K',
  16. 'dev_memory_used': '900M 0.0K',
  17. 'dev_cpu_quota': '10.0',
  18. 'dev_cpu_used': '2.5',
  19. 'dev_gpu_quota': '0',
  20. 'dev_gpu_used': '0',
  21. }
  22. ]

Framework API

查看所有Framework信息(GET /cloud_ml/v1/framework)

URL参数格式:同上。

Header格式:同上。

POST数据格式:无。

返回格式:

描述 返回码 返回数据
成功 200 参见下面
请求错误 405 { "error": True, "Support POST/GET only"}

成功返回结果:

  1. {
  2. 'torch': ['master'],
  3. 'mxnet': ['0.9.0'],
  4. 'keras': ['1.1.1'],
  5. 'xgboost': ['0.60.0'],
  6. 'cntk': ['2.0.0'],
  7. 'caffe': ['0.9.0'],
  8. 'tensorflow': ['0.11.0-xm1.0.0', '0.11.0'],
  9. 'theano': ['0.8.2'],
  10. 'scikitlearn': ['0.17.0']
  11. }

原文: http://docs.api.xiaomi.com/cloud-ml/api/docs.html