在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:Funny-JMS开源软件地址:https://gitee.com/kt10/funny-jms开源软件介绍:Funny-JMS
Ultimate jms(jump server) written in C and raft. 亮点
宏观架构图
前端模块设计示例TODO
API wiki字段定义:
{1.1} 创建用户
req-->[ {"params": {"uname": "张三"}, "rid": 1}, {"params": {"uname": "李四"}, "rid": 2}, {"params": {"uname": "王五"}, "rid": 3}]<--resp[ {"result": {"uid": 1}, "rid": 1}, {"result": {"uid": 2}, "rid": 2}, {"error": {"code": 1000, "message": "user exists", "data": {"uid": 9}}, "rid": 3}] {1.2} 删除用户
req-->[ {"params": {"uid": 1}, "rid": 1}, {"params": {"uid": 2}, "rid": 2}, {"params": {"uid": 9}, "rid": 3}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}, {"result": "", "rid": 3}] {1.3} 更新(添加或替换)用户公钥
req-->[ {"params": {"xuid": 1, "pubkey": "..."}, "rid": 1}, {"params": {"xuid": 2, "pubkey": "..."}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {1.4} 查看用户已加入的开发组列表及下属主机列表
req-->{"params": {"xuid": 1}, "rid": 1}<--resp{ "result": [ { "gid": 1, "gname": "dev-01", "hosts": [ {"addr": "4.4.4.4", "hname": "dns"}, {"addr": "6.6.6.6", "hname": "dns"} ] }, { "gid": 2, "gname": "dev-02", "hosts": [ {"addr": "8.8.8.8", "hname": "dns"} ] } ], "rid": 1} {1.5} 申请加入开发组
req-->[ {"params": {"xuid": 1, "gid": 1}, "rid": 1}, {"params": {"xuid": 2, "gid": 1}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {1.6} 退出开发组
req-->[ {"params": {"xuid": 1, "gid": 1}, "rid": 1}, {"params": {"xuid": 1, "gid": 2}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {2.1} 新建开发组
req-->[ {"params": {"xuid": 1, "gname": "dev-01"}, "rid": 1}, {"params": {"xuid": 1, "gname": "dev-02"}, "rid": 2}]<--resp[ {"result": {"gid": 1}, "rid": 1}, {"error": {"code": 2000, "message": "group exists", "data": {"gid": 9}}, "rid": 2}] {2.2} 删除开发组成员
req-->[ {"params": {"xuid": 1, "gid": 1, "uid": 1}, "rid": 1}, {"params": {"xuid": 1, "gid": 1, "uid": 2}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {2.4} 添加主机到指定开发组
req-->[ {"params": {"xuid": 1, "gid": 1, "hid": 1}, "rid": 1}, {"params": {"xuid": 1, "gid": 1, "hid": 2}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {2.5} 从指定开发组中删除主机
req-->[ {"params": {"xuid": 1, "gid": 1, "hid": 1}, "rid": 1}, {"params": {"xuid": 1, "gid": 1, "hid": 2}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {2.6} 查看所有开发组列表
req-->{"params": {"pid": 1, "psiz": 20}, "rid": 1}<--resp{ "result": { "totalcnt": 100, "data": [ {"gid": 1, "gname": "dev-01"}, {"gid": 2, "gname": "dev-02"} ] }, "rid": 1} {2.7} 查看指定开发组的元信息
req-->{"params": {"gid": 1}, "rid": 1}<--resp{ "result": { "people": [ {"uid": 1, "uname": "张三"}, {"uid": 2, "uname": "李四"} ], "hosts": [ {"hid": 1, "addr": "8.8.8.8", "nettype": "classic", "hname": "dns"}, {"hid": 2, "addr": "6.6.6.6", "nettype": "idc", "hname": "dns"} ] }, "rid": 1} {3.1} 查看所有主机列表
req-->{"params": {"pid": 1, "psiz": 20}, "rid": 1}<--resp{ "result": { "totalcnt": 100, "data": [ { "vid": "aliyun", "aid": "ecs-123", "hid": 1, "hname": "dns", "addr": "8.8.8.8", "nettype": "idc", "gids": [ {"gid": 1, "gname", "dev-01"}, {"gid": 2, "gname": "dev-02"} ] }, { "vid": "huawei", "aid": "xxx-123", "hid": 2, "hname": "dns", "addr": "6.6.6.6", "nettype": "classic", "gids": [ {"gid": 2, "gname": "dev-02"} ] } ] }, "rid": 1} {4.1} 查看所有待处理的投票事务列表及详情
req-->{"params": {"xuid": 1, "pid": 1, "psiz": 20}, "rid": 1}<--resp{ "result": { "totalcnt": 100, "data": [ { "tid": 1, "ttype": "user-add", "gname": "dev-01", "timestamp": 1530000000, "initiator": "张三", "target": "张三", "info": "新同事" }, { "tid": 2, "ttype": "user-del", "gname": "dev-01", "timestamp": 1540000000, "initiator": "李四", "target": "张三", "info": "张三已离职" }, { "tid": 3, "ttype": "host-add", "gname": "dev-01", "timestamp": 1550000000, "initiator": "李四", "target": "8.8.8.8", "info": "" }, { "tid": 4, "ttype": "host-del", "gname": "dev-01", "timestamp": 1560000000, "initiator": "李四", "target": "8.8.8.8", "info": "" } ] }, "rid": 1} {4.2} 投票赞成
req-->[ {"params": {"xuid": 1, "tid": 1}, "rid": 1}, {"params": {"xuid": 1, "tid": 2}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {4.3} 投票否决
req-->[ {"params": {"xuid": 1, "tid": 1}, "rid": 1}, {"params": {"xuid": 1, "tid": 2}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] {4.4} 忽略事务
req-->[ {"params": {"xuid": 1, "tid": 1}, "rid": 1}, {"params": {"xuid": 1, "tid": 2}, "rid": 2}]<--resp[ {"result": "", "rid": 1}, {"result": "", "rid": 2}] |
请发表评论