This is an automated email from the ASF dual-hosted git repository.
dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new 284efbc48a [INLONG-8374][Manager] Manager client tools support
multiple tenant (#8488)
284efbc48a is described below
commit 284efbc48a33bbee7a4dfb4219710b71fc8af03f
Author: haibo.duan <[email protected]>
AuthorDate: Thu Jul 13 09:46:07 2023 +0800
[INLONG-8374][Manager] Manager client tools support multiple tenant (#8488)
---
.../inlong/manager/client/cli/CreateCommand.java | 72 +++++++++++++++++++
.../inlong/manager/client/cli/DescribeCommand.java | 50 +++++++++++++
.../inlong/manager/client/cli/ListCommand.java | 56 +++++++++++++++
.../inlong/manager/client/cli/UpdateCommand.java | 84 ++++++++++++++++++++++
.../inlong/manager/client/cli/pojo/TenantInfo.java | 38 ++++++++++
.../manager/client/cli/pojo/TenantRoleInfo.java | 40 +++++++++++
6 files changed, 340 insertions(+)
diff --git
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/CreateCommand.java
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/CreateCommand.java
index 7d240f6a71..fe221a13ab 100644
---
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/CreateCommand.java
+++
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/CreateCommand.java
@@ -22,6 +22,8 @@ import org.apache.inlong.manager.client.api.InlongGroup;
import org.apache.inlong.manager.client.api.InlongGroupContext;
import org.apache.inlong.manager.client.api.InlongStreamBuilder;
import org.apache.inlong.manager.client.api.inner.client.InlongClusterClient;
+import org.apache.inlong.manager.client.api.inner.client.InlongTenantClient;
+import
org.apache.inlong.manager.client.api.inner.client.InlongTenantRoleClient;
import org.apache.inlong.manager.client.api.inner.client.UserClient;
import org.apache.inlong.manager.client.cli.pojo.CreateGroupConf;
import org.apache.inlong.manager.client.cli.util.ClientUtils;
@@ -34,6 +36,8 @@ import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
import org.apache.inlong.manager.pojo.sort.FlinkSortConf;
import org.apache.inlong.manager.pojo.stream.InlongStreamInfo;
+import org.apache.inlong.manager.pojo.tenant.InlongTenantRequest;
+import org.apache.inlong.manager.pojo.user.TenantRoleRequest;
import org.apache.inlong.manager.pojo.user.UserRequest;
import com.beust.jcommander.Parameter;
@@ -66,6 +70,8 @@ public class CreateCommand extends AbstractCommand {
jcommander.addCommand("cluster-tag", new CreateClusterTag());
jcommander.addCommand("cluster-node", new CreateClusterNode());
jcommander.addCommand("user", new CreateUser());
+ jcommander.addCommand("tenant", new CreateTenant());
+ jcommander.addCommand("tenant-role", new CreateTenantRole());
}
@Parameters(commandDescription = "Create group by json file")
@@ -267,4 +273,70 @@ public class CreateCommand extends AbstractCommand {
}
}
}
+
+ @Parameters(commandDescription = "Create tenant")
+ private static class CreateTenant extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-n", "--name"}, description = "tenant name")
+ private String name;
+
+ @Parameter(names = {"-d", "--description"}, description = "tenant
description")
+ private String description;
+
+ @Override
+ void run() {
+ try {
+ InlongTenantRequest request = new InlongTenantRequest();
+ request.setName(name);
+ request.setDescription(description);
+ request.setVersion(0);
+ ClientUtils.initClientFactory();
+ InlongTenantClient tenantClient =
ClientUtils.clientFactory.getInlongTenantClient();
+ Integer userId = tenantClient.save(request);
+ if (userId != null) {
+ System.out.println("Create tenant success! ID: " + userId);
+ }
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
+
+ @Parameters(commandDescription = "Create tenant role")
+ private static class CreateTenantRole extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-u", "--username"}, description = "username")
+ private String username;
+
+ @Parameter(names = {"-p", "--role-code"}, description = "role code")
+ private String roleCode;
+
+ @Parameter(names = {"-t", "--tenant"}, description = "tenant")
+ private String tenant;
+
+ @Override
+ void run() {
+ try {
+ TenantRoleRequest request = new TenantRoleRequest();
+ request.setUsername(username);
+ request.setRoleCode(roleCode);
+ request.setTenant(tenant);
+ request.setVersion(0);
+ ClientUtils.initClientFactory();
+ InlongTenantRoleClient roleClient =
ClientUtils.clientFactory.getInlongTenantRoleClient();
+ Integer roleId = roleClient.save(request);
+ if (roleId != null) {
+ System.out.println("Create role success! ID: " + roleId);
+ }
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
}
diff --git
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java
index 0165da8c96..ec50e2e04e 100644
---
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java
+++
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java
@@ -20,6 +20,8 @@ package org.apache.inlong.manager.client.cli;
import org.apache.inlong.manager.client.api.inner.client.InlongClusterClient;
import org.apache.inlong.manager.client.api.inner.client.InlongGroupClient;
import org.apache.inlong.manager.client.api.inner.client.InlongStreamClient;
+import org.apache.inlong.manager.client.api.inner.client.InlongTenantClient;
+import
org.apache.inlong.manager.client.api.inner.client.InlongTenantRoleClient;
import org.apache.inlong.manager.client.api.inner.client.StreamSinkClient;
import org.apache.inlong.manager.client.api.inner.client.StreamSourceClient;
import org.apache.inlong.manager.client.api.inner.client.StreamTransformClient;
@@ -35,7 +37,9 @@ import
org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
import org.apache.inlong.manager.pojo.sink.StreamSink;
import org.apache.inlong.manager.pojo.source.StreamSource;
import org.apache.inlong.manager.pojo.stream.InlongStreamInfo;
+import org.apache.inlong.manager.pojo.tenant.InlongTenantInfo;
import org.apache.inlong.manager.pojo.transform.TransformResponse;
+import org.apache.inlong.manager.pojo.user.TenantRoleInfo;
import org.apache.inlong.manager.pojo.user.UserInfo;
import com.beust.jcommander.Parameter;
@@ -64,6 +68,8 @@ public class DescribeCommand extends AbstractCommand {
jcommander.addCommand("cluster-tag", new DescribeClusterTag());
jcommander.addCommand("cluster-node", new DescribeClusterNode());
jcommander.addCommand("user", new DescribeUser());
+ jcommander.addCommand("tenant", new DescribeTenant());
+ jcommander.addCommand("tenant-role", new DescribeTenantRole());
}
@Parameters(commandDescription = "Get stream details")
@@ -283,4 +289,48 @@ public class DescribeCommand extends AbstractCommand {
}
}
}
+
+ @Parameters(commandDescription = "Get tenant details")
+ private static class DescribeTenant extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-name", "--name"}, required = true, description =
"tenant name")
+ private String name;
+
+ @Override
+ void run() {
+ try {
+ ClientUtils.initClientFactory();
+ InlongTenantClient tenantClient =
ClientUtils.clientFactory.getInlongTenantClient();
+ InlongTenantInfo tenantInfo =
tenantClient.getTenantByName(name);
+ PrintUtils.printJson(tenantInfo);
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
+
+ @Parameters(commandDescription = "Get tenant role details")
+ private static class DescribeTenantRole extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-id", "--id"}, required = true, description =
"tenant role id")
+ private int id;
+
+ @Override
+ void run() {
+ try {
+ ClientUtils.initClientFactory();
+ InlongTenantRoleClient tenantRoleClient =
ClientUtils.clientFactory.getInlongTenantRoleClient();
+ TenantRoleInfo tenantRoleInfo = tenantRoleClient.get(id);
+ PrintUtils.printJson(tenantRoleInfo);
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
}
diff --git
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java
index a2673d60b1..af334e52cc 100644
---
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java
+++
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java
@@ -20,6 +20,8 @@ package org.apache.inlong.manager.client.cli;
import org.apache.inlong.manager.client.api.inner.client.InlongClusterClient;
import org.apache.inlong.manager.client.api.inner.client.InlongGroupClient;
import org.apache.inlong.manager.client.api.inner.client.InlongStreamClient;
+import org.apache.inlong.manager.client.api.inner.client.InlongTenantClient;
+import
org.apache.inlong.manager.client.api.inner.client.InlongTenantRoleClient;
import org.apache.inlong.manager.client.api.inner.client.StreamSinkClient;
import org.apache.inlong.manager.client.api.inner.client.StreamSourceClient;
import org.apache.inlong.manager.client.api.inner.client.StreamTransformClient;
@@ -48,7 +50,11 @@ import
org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
import org.apache.inlong.manager.pojo.sink.StreamSink;
import org.apache.inlong.manager.pojo.source.StreamSource;
import org.apache.inlong.manager.pojo.stream.InlongStreamInfo;
+import org.apache.inlong.manager.pojo.tenant.InlongTenantInfo;
+import org.apache.inlong.manager.pojo.tenant.InlongTenantPageRequest;
import org.apache.inlong.manager.pojo.transform.TransformResponse;
+import org.apache.inlong.manager.pojo.user.TenantRoleInfo;
+import org.apache.inlong.manager.pojo.user.TenantRolePageRequest;
import org.apache.inlong.manager.pojo.user.UserInfo;
import org.apache.inlong.manager.pojo.user.UserRequest;
@@ -78,6 +84,8 @@ public class ListCommand extends AbstractCommand {
jcommander.addCommand("cluster-tag", new ListClusterTag());
jcommander.addCommand("cluster-node", new ListClusterNode());
jcommander.addCommand("user", new ListUser());
+ jcommander.addCommand("tenant", new ListTenant());
+ jcommander.addCommand("tenant-role", new ListTenantRole());
}
@Parameters(commandDescription = "Get stream summary information")
@@ -330,4 +338,52 @@ public class ListCommand extends AbstractCommand {
}
}
}
+
+ @Parameters(commandDescription = "Get tenant summary information")
+ private static class ListTenant extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-keyword", "--keyword"}, description = "keyword")
+ private String keyword;
+
+ @Override
+ void run() {
+ try {
+ ClientUtils.initClientFactory();
+ InlongTenantPageRequest request = new
InlongTenantPageRequest();
+ request.setKeyword(keyword);
+ InlongTenantClient tenantClient =
ClientUtils.clientFactory.getInlongTenantClient();
+ PageResult<InlongTenantInfo> tenantInfo =
tenantClient.listByCondition(request);
+ PrintUtils.print(tenantInfo.getList(),
org.apache.inlong.manager.client.cli.pojo.TenantInfo.class);
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
+
+ @Parameters(commandDescription = "Get tenant role summary information")
+ private static class ListTenantRole extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-keyword", "--keyword"}, description = "keyword")
+ private String keyword;
+
+ @Override
+ void run() {
+ try {
+ ClientUtils.initClientFactory();
+ TenantRolePageRequest request = new TenantRolePageRequest();
+ request.setKeyword(keyword);
+ InlongTenantRoleClient tenantRoleClient =
ClientUtils.clientFactory.getInlongTenantRoleClient();
+ PageResult<TenantRoleInfo> tenantInfo =
tenantRoleClient.listByCondition(request);
+ PrintUtils.print(tenantInfo.getList(),
org.apache.inlong.manager.client.cli.pojo.TenantRoleInfo.class);
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
}
diff --git
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/UpdateCommand.java
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/UpdateCommand.java
index 10214b1624..5834e135fc 100644
---
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/UpdateCommand.java
+++
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/UpdateCommand.java
@@ -20,6 +20,8 @@ package org.apache.inlong.manager.client.cli;
import org.apache.inlong.manager.client.api.InlongClient;
import org.apache.inlong.manager.client.api.InlongGroup;
import org.apache.inlong.manager.client.api.inner.client.InlongClusterClient;
+import org.apache.inlong.manager.client.api.inner.client.InlongTenantClient;
+import
org.apache.inlong.manager.client.api.inner.client.InlongTenantRoleClient;
import org.apache.inlong.manager.client.api.inner.client.UserClient;
import org.apache.inlong.manager.client.cli.util.ClientUtils;
import org.apache.inlong.manager.common.exceptions.BusinessException;
@@ -28,6 +30,10 @@ import
org.apache.inlong.manager.pojo.cluster.ClusterNodeRequest;
import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
import org.apache.inlong.manager.pojo.sort.BaseSortConf;
+import org.apache.inlong.manager.pojo.tenant.InlongTenantInfo;
+import org.apache.inlong.manager.pojo.tenant.InlongTenantRequest;
+import org.apache.inlong.manager.pojo.user.TenantRoleInfo;
+import org.apache.inlong.manager.pojo.user.TenantRoleRequest;
import org.apache.inlong.manager.pojo.user.UserInfo;
import org.apache.inlong.manager.pojo.user.UserRequest;
@@ -56,6 +62,8 @@ public class UpdateCommand extends AbstractCommand {
jcommander.addCommand("cluster-tag", new
UpdateCommand.UpdateClusterTag());
jcommander.addCommand("cluster-node", new
UpdateCommand.UpdateClusterNode());
jcommander.addCommand("user", new UpdateCommand.UpdateUser());
+ jcommander.addCommand("tenant", new UpdateCommand.UpdateTenant());
+ jcommander.addCommand("tenant-role", new
UpdateCommand.UpdateTenantRole());
}
@Parameters(commandDescription = "Update group by json file")
@@ -205,4 +213,80 @@ public class UpdateCommand extends AbstractCommand {
}
}
}
+
+ @Parameters(commandDescription = "Update Tenant")
+ private static class UpdateTenant extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-n", "--name"}, description = "name to be modify")
+ private String name;
+
+ @Parameter(names = {"-d", "--description"}, description = "new
description")
+ private String description;
+
+ @Override
+ void run() {
+ try {
+ InlongTenantRequest request = new InlongTenantRequest();
+ request.setName(name);
+ ClientUtils.initClientFactory();
+ InlongTenantClient tenantClient =
ClientUtils.clientFactory.getInlongTenantClient();
+ InlongTenantInfo tenantInfo =
tenantClient.getTenantByName(name);
+ if (tenantInfo == null) {
+ throw new BusinessException(name + " not exist, please
check.");
+ }
+ request.setId(tenantInfo.getId());
+ request.setDescription(description);
+ request.setVersion(tenantInfo.getVersion());
+ if (tenantClient.update(request)) {
+ System.out.println("Update user success!");
+ }
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
+
+ @Parameters(commandDescription = "Update Tenant Role")
+ private static class UpdateTenantRole extends AbstractCommandRunner {
+
+ @Parameter()
+ private List<String> params;
+
+ @Parameter(names = {"-id", "--id"}, description = "id to be modify")
+ private Integer id;
+
+ @Parameter(names = {"-rc", "--role-code"}, description = "new role
code")
+ private String roleCode;
+
+ @Override
+ void run() {
+ try {
+ TenantRoleRequest request = new TenantRoleRequest();
+ request.setId(id);
+ ClientUtils.initClientFactory();
+ InlongTenantRoleClient roleClient =
ClientUtils.clientFactory.getInlongTenantRoleClient();
+ TenantRoleInfo roleInfo = roleClient.get(id);
+ if (roleInfo == null) {
+ throw new BusinessException(id + " not exist, please
check.");
+ }
+ request.setUsername(roleInfo.getUsername());
+ request.setDisabled(roleInfo.getDisabled());
+ request.setVersion(roleInfo.getVersion());
+ if (StringUtils.isNotEmpty(roleCode)) {
+ request.setRoleCode(roleCode);
+ } else {
+ request.setRoleCode(roleInfo.getRoleCode());
+ }
+ request.setTenant(roleInfo.getTenant());
+ if (roleClient.update(request)) {
+ System.out.println("Update user success!");
+ }
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ }
}
diff --git
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/pojo/TenantInfo.java
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/pojo/TenantInfo.java
new file mode 100644
index 0000000000..1365bf0049
--- /dev/null
+++
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/pojo/TenantInfo.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.manager.client.cli.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+public class TenantInfo {
+
+ private Integer id;
+ private String name;
+ private String description;
+ private String creator;
+ private String modifier;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date modifyTime;
+
+ private Integer version;
+}
diff --git
a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/pojo/TenantRoleInfo.java
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/pojo/TenantRoleInfo.java
new file mode 100644
index 0000000000..b7570dbd68
--- /dev/null
+++
b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/pojo/TenantRoleInfo.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.manager.client.cli.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+public class TenantRoleInfo {
+
+ private Integer id;
+ private String username;
+ private String roleCode;
+ private String tenant;
+ private Integer disabled;
+ private String creator;
+ private String modifier;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date modifyTime;
+
+ private Integer version;
+}