0580-5.16.1-通过CDSW API获取所有用户的Project详细信息

1 文档编写目的

在正常使用CDSW的情况下,我们也需要对CDSW服务的监控状况进行监控,CDSW默认的工程存储路径是在服务器的/var/lib/cdsw/current/projects/projects/0的目录下,由于所有的工程存储均是以编号来标识,无法确定每个工程对应的用户,不便于维护管理。本篇文章Fayson主要介绍通过CDSW API的方式获取到用户与工程名和编号的对应关系。

  • 测试环境

1.RedHat7.4

2.CDSW版本为1.4.2

3.CM和CDH版本为5.16.1

2 涉及API接口

在这篇文章中Fayson主要介绍通过API接口获取CDSW所有的业务用户以及每个用户创建的Project列表,本篇文章涉及到的API接口如下:

  • 获取CDSW的所有用户列表API
请求地址:http://{cdsw_domain}/api/v1/site/users?limit=30&offset=0&order_by=last_seen_at&order_sort=desc
请求类型:GET
返回值:[{
    "id": 2,
    "username": "fayson",
    "username_hash": "7456d089ce96f523773a3c581065f55c5f28eb8ea5d39c46ab4cb719f163116c",
    "type": "user",
    "email": "fayson@qq.com",
    "name": "fayson",
    "api_key": "uboqugrcjx6qqftj0wfazhxye5f7vd3l",
    "custom_payment": false,
    "admin": false,
    "last_login_at": "2019-02-18T13:28:14.395Z",
    "joined_on": "2019-02-18T13:28:14.395Z",
    "onboarding_complete": false,
    "onboarding_step": 0,
    "last_seen_at": "2019-03-11T10:28:20.065Z",
    "last_logout_at_tz": "2019-03-11T10:29:05.282Z",
    "followers": 0,
    "public_projects": 0,
    "organization_projects": 0,
    "private_projects": 2,
    "running_dashboards": 0,
    "usage_credits": 5,
    "outstanding_balance": 0,
    "last_context_id": 2,
    "banned": false,
    "deactivated": false,
    "memory_hours": 0.0424611877777778,
    "cpu_hours": 0.0212305938888889,
    "gpu_hours": 0,
    "avg_session_duration": 0,
    "jobs_run": 0,
    "sessions_run": 2,
    "cc_onfile": false,
    "html_url": "http://cdsw.fayson.com/fayson",
    "url": "http://cdsw.fayson.com/api/v1/users/fayson"
  }]
  • 获取指定用户下所有的Project列表
请求地址:http://{cdsw_domain}/api/v1/users/{user}/projects
请求类型:GET
返回值:[{
    "id": 5,
    "name": "testpython",
    "slug": "fayson1/testpython",
    "slug_raw": "testpython",
    "owner": {
        "id": 3,
        "username": "fayson1",
        "name": "fayson1",
        "email": "fayson1@qq.com",
        "type": "user",
        "html_url": "http://cdsw.fayson.com/fayson1",
        "url": "http://cdsw.fayson.com/api/v1/users/fayson1"
    },
    "creator": {
        "id": 3,
        "username": "fayson1",
        "name": "fayson1",
        "url": "http://cdsw.fayson.com/api/v1/users/fayson1",
        "html_url": "http://cdsw.fayson.com/fayson1"
    },
    "description": "",
    "stars": 0,
    "starred": null,
    "forks": 0,
    "forked": false,
    "running_dashboards": 0,
    "history": [{
        "day": "2019-03-11 00:00:00Z",
        "count": 2
    }],
    "public": false,
    "project_visibility": "private",
    "created_at": "2019-03-11T15:06:43.876Z",
    "updated_at": "2019-03-11T15:17:05.263Z",
    "user_updated_at": "2019-03-11T15:27:45.400Z",
    "html_url": "http://cdsw.fayson.com/fayson1/testpython",
    "url": "http://cdsw.fayson.com/api/v1/projects/fayson1/testpython"
}]

3 获取用户工程列表

本章节测试主要使用curl命令方式调用API接口,获取所用CDSW业务用户创建的Project详细信息。

1.使用管理员账号执行如下命令获取所有的cdsw业务用户

[root@ip-172-31-13-38 ~]# curl -u 'admin:123456' -X GET http://cdsw.fayson.com/api/v1/site/users

通过如上API接口可以获取到所有用户的详细信息,如上图有几个关键的信息,用户的username以及api_key信息,在接下来的接口请求中会用到。

2.使用如下命令,获取指定用户的Project列表

[root@ip-172-31-13-38 ~]# curl -X GET http://cdsw.fayson.com/api/v1/users/fayson1/projects --user "uxwejvsrw4ur1taqr2a2q8ozl1mluf11:"

通过上述接口可以获取到每个CDSW用户的Project列表,包含了Project的详细信息(ID,name等)。

4 总结

1.使用管理员账号通过API接口首先获取到CDSW集群中所有的用户信息,主要是获取用户的username以及api_key信息。

2.通过username和api_key参数结合获取用户Project列表的API接口,获取到指定用户的所有Project信息,信息中包含了每个工程的ID就可以与磁盘上的工程目录对应起来,监控每个用户工程磁盘使用情况。

3.在使用获取Project API接口时需要注意两个参数{user}和–user,{user}需要替换为每个业务用户的username,–user参数指定的为业务用户的api_key,注意最后面需要添加“:”。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值