华为FusionInsight MRS Manager rest接口基础学习
华为FusionInsight MRS实战 - Manager rest接口基础学习
Manager简介
FusionInsight Manager是集群的运维管理系统,为部署在集群内的服务提供统一的集群管理能力。
Manager支持大规模集群的安装部署性能监控、告警、用户管理、权限管理、审计、服务管理、健康检查、日志采集等功能。
典型场景说明
通过典型场景,可以快速学习和掌握Manage REST API的开发过程,并且对关键的函数有所了解。
场景说明
假定用户需要以非界面方式实现操作FusionInsight Manager系统,要求开发基于HTTP Basic认证的应用程序实现如下功能:
- 登录FusionInsight Manager系统。
- 访问FusionInsight Manager系统,进行查询、添加、删除等操作。
下面对比介绍使用样例代码和curl命令完成上述rest接口验证
环境准备
-
(样例代码)下载并准备MRS对应版本的manager样例代码,比如:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.2/src/manager-examples
注意:分别将工程的conf,src路径标注为Resouces Root和Source Root
-
(样例代码)修改UserInfo.properties文件,分别填入对应的manager登录用户名,密码以及Manager IP
-
(Curl命令)准备linux客户端,使用命令
curl -V
检查是否支持认证
下面根据UserManager.java对比验证
Manager 功能验证
- (样例代码)登录核心参考如下样例代码
// 调用firstAccess接口完成登录认证
LOG.info("Begin to get httpclient and first access.");
BasicAuthAccess authAccess = new BasicAuthAccess();
HttpClient httpClient = authAccess.loginAndAccess(webUrl, userName, password, userTLSVersion);
LOG.info("Start to access REST API.");
对应curl 请求命令 -u 参数
- (样例代码)访问Manager接口完成添加用户,参考如下样例代码
// 访问Manager接口完成添加用户
operationName = "AddUser";
operationUrl = webUrl + ADD_USER_URL;
jsonFilePath = "./conf/addUser.json";
httpManager.sendHttpPostRequest(httpClient, operationUrl, jsonFilePath, operationName);
对应curl 命令请求
curl -s -w %{http_code} -k -u '对应用户':'对应密码' -X POST 'https://xxx.xx.xx.xxx:28443/web/api/v2/permission/users' -HContent-type:application/json -d '{"userName":"user888","userType":"HM","password":"Admin12!","confirmPassword":"Admin12!","userGroups":["supergroup"],"userRoles":[],"primaryGroup":"supergroup","description":"Add user"}'
- (样例代码)访问Manager接口完成查找用户列表,参考如下样例代码
// 访问Manager接口完成查找用户列表
operationName = "QueryUserList";
operationUrl = webUrl + QUERY_USER_LIST_URL;
String responseLineContent = httpManager.sendHttpGetRequest(httpClient, operationUrl, operationName);
LOG.info("The {} response is {}.", operationName, responseLineContent);
对应curl 命令请求
curl -s -w %{http_code} -k -u '对应用户':'对应密码' -X GET 'https://xxx.xx.xx.xxx:28443/web/api/v2/permission/users?limit=10&offset=0&filter=&order=ASC' -HContent-type:application/json
- (样例代码)访问Manager接口完成修改用户,参考如下样例代码
// 访问Manager接口完成修改用户
operationName = "ModifyUser";
String modifyUserName = "user888";
operationUrl = webUrl + MODIFY_USER_URL + modifyUserName;
jsonFilePath = "./conf/modifyUser.json";
httpManager.sendHttpPutRequest(httpClient, operationUrl, jsonFilePath, operationName);
对应curl 命令请求
curl -s -w %{http_code} -k -u '对应用户':'对应密码' -X PUT 'https://xxx.xx.xx.xxx:28443/web/api/v2/permission/users/user888' -HContent-type:application/json -d '{"userName":"user888","userType":"HM","password":"","confirmPassword":"","userGroups":["supergroup"],"primaryGroup":"supergroup","userRoles":["Manager_administrator"],"description":"Modify user"}'
- (样例代码)访问Manager接口完成删除用户,参考如下样例代码
// 访问Manager接口完成删除用户
operationName = "DeleteUser";
String deleteJsonStr = "{\"userNames\":[\"user888\"]}";
operationUrl = webUrl + DELETE_USER_URL;
httpManager.sendHttpDeleteRequest(httpClient, operationUrl, deleteJsonStr, operationName);
对应curl 命令请求
curl -s -w %{http_code} -k -u '对应用户':'对应密码' -X DELETE 'https://xxx.xx.xx.xxx:28443/web/api/v2/permission/users' -HContent-type:application/json -d '{"userNames":["user888"]}'
- 点赞
- 收藏
- 关注作者
评论(0)