华为FusionInsight MRS Manager rest接口基础学习

晋红轻 发表于 2021/12/29 11:01:47 2021/12/29
【摘要】 FusionInsight Manager是集群的运维管理系统,为部署在集群内的服务提供统一的集群管理能力。本文学习使用基本的rest接口访问manager。

华为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 功能验证

  1. (样例代码)登录核心参考如下样例代码
// 调用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 参数

  1. (样例代码)访问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"}'

  1. (样例代码)访问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

  1. (样例代码)访问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"}'

  1. (样例代码)访问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"]}'

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。