From ebc37786735f3f39e7bae2b1ed06a4b494b7e50d Mon Sep 17 00:00:00 2001 From: "haoyu.ding" Date: Wed, 11 Mar 2026 11:56:46 +0800 Subject: [PATCH] [sdk]: Add getVmHaNetworkGroupStatusOnHost method Resolves: ZSTAC-83065 Change-Id: I6d6f71667972646b71746c6c656e676c70657467 --- sdk/src/main/java/SourceClassMap.java | 2 + ...GetVmHaNetworkGroupStatusOnHostAction.java | 98 +++++++++++++++++++ ...GetVmHaNetworkGroupStatusOnHostResult.java | 38 +++++++ .../zstack/sdk/NetworkGroupStatusDetail.java | 31 ++++++ .../java/org/zstack/testlib/ApiHelper.groovy | 27 +++++ .../CloudOperationsErrorCode.java | 6 ++ 6 files changed, 202 insertions(+) create mode 100644 sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostAction.java create mode 100644 sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostResult.java create mode 100644 sdk/src/main/java/org/zstack/sdk/NetworkGroupStatusDetail.java diff --git a/sdk/src/main/java/SourceClassMap.java b/sdk/src/main/java/SourceClassMap.java index 227acb8e9aa..25366ac5174 100644 --- a/sdk/src/main/java/SourceClassMap.java +++ b/sdk/src/main/java/SourceClassMap.java @@ -178,6 +178,7 @@ public class SourceClassMap { put("org.zstack.guesttools.GuestVmScriptInventory", "org.zstack.sdk.GuestVmScriptInventory"); put("org.zstack.guesttools.InvocationRecord", "org.zstack.sdk.InvocationRecord"); put("org.zstack.guesttools.InvocationRecordDetail", "org.zstack.sdk.InvocationRecordDetail"); + put("org.zstack.ha.APIGetVmHaNetworkGroupStatusOnHostReply$NetworkGroupStatusDetail", "org.zstack.sdk.NetworkGroupStatusDetail"); put("org.zstack.ha.HaNetworkGroupInventory", "org.zstack.sdk.HaNetworkGroupInventory"); put("org.zstack.ha.HaStrategyConditionInventory", "org.zstack.sdk.HaStrategyConditionInventory"); put("org.zstack.header.acl.AccessControlListEntryInventory", "org.zstack.sdk.AccessControlListEntryInventory"); @@ -1265,6 +1266,7 @@ public class SourceClassMap { put("org.zstack.sdk.NativeClusterInventory", "org.zstack.container.entity.NativeClusterInventory"); put("org.zstack.sdk.NativeHostInventory", "org.zstack.container.entity.NativeHostInventory"); put("org.zstack.sdk.Neighbor", "org.zstack.header.protocol.Neighbor"); + put("org.zstack.sdk.NetworkGroupStatusDetail", "org.zstack.ha.APIGetVmHaNetworkGroupStatusOnHostReply$NetworkGroupStatusDetail"); put("org.zstack.sdk.NetworkReachablePair", "org.zstack.zops.NetworkReachablePair"); put("org.zstack.sdk.NetworkRouterAreaRefInventory", "org.zstack.header.protocol.NetworkRouterAreaRefInventory"); put("org.zstack.sdk.NetworkRouterFlowMeterRefInventory", "org.zstack.header.flowMeter.NetworkRouterFlowMeterRefInventory"); diff --git a/sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostAction.java b/sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostAction.java new file mode 100644 index 00000000000..02b5477db3a --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostAction.java @@ -0,0 +1,98 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class GetVmHaNetworkGroupStatusOnHostAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.GetVmHaNetworkGroupStatusOnHostResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String vmUuid; + + @Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false) + public java.lang.String targetHostUuid; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.GetVmHaNetworkGroupStatusOnHostResult value = res.getResult(org.zstack.sdk.GetVmHaNetworkGroupStatusOnHostResult.class); + ret.value = value == null ? new org.zstack.sdk.GetVmHaNetworkGroupStatusOnHostResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "GET"; + info.path = "/vm-instances/{vmUuid}/ha-network-group-status"; + info.needSession = true; + info.needPoll = false; + info.parameterName = ""; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostResult.java b/sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostResult.java new file mode 100644 index 00000000000..4ba8200bb01 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetVmHaNetworkGroupStatusOnHostResult.java @@ -0,0 +1,38 @@ +package org.zstack.sdk; + + + +public class GetVmHaNetworkGroupStatusOnHostResult { + public java.lang.String hostStatus; + public void setHostStatus(java.lang.String hostStatus) { + this.hostStatus = hostStatus; + } + public java.lang.String getHostStatus() { + return this.hostStatus; + } + + public boolean enableHa; + public void setEnableHa(boolean enableHa) { + this.enableHa = enableHa; + } + public boolean getEnableHa() { + return this.enableHa; + } + + public boolean monitorEnabled; + public void setMonitorEnabled(boolean monitorEnabled) { + this.monitorEnabled = monitorEnabled; + } + public boolean getMonitorEnabled() { + return this.monitorEnabled; + } + + public java.util.List networkGroupDetails; + public void setNetworkGroupDetails(java.util.List networkGroupDetails) { + this.networkGroupDetails = networkGroupDetails; + } + public java.util.List getNetworkGroupDetails() { + return this.networkGroupDetails; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/NetworkGroupStatusDetail.java b/sdk/src/main/java/org/zstack/sdk/NetworkGroupStatusDetail.java new file mode 100644 index 00000000000..0eb6185e269 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/NetworkGroupStatusDetail.java @@ -0,0 +1,31 @@ +package org.zstack.sdk; + + + +public class NetworkGroupStatusDetail { + + public java.lang.String networkGroupUuid; + public void setNetworkGroupUuid(java.lang.String networkGroupUuid) { + this.networkGroupUuid = networkGroupUuid; + } + public java.lang.String getNetworkGroupUuid() { + return this.networkGroupUuid; + } + + public java.lang.String networkGroupName; + public void setNetworkGroupName(java.lang.String networkGroupName) { + this.networkGroupName = networkGroupName; + } + public java.lang.String getNetworkGroupName() { + return this.networkGroupName; + } + + public java.lang.String status; + public void setStatus(java.lang.String status) { + this.status = status; + } + public java.lang.String getStatus() { + return this.status; + } + +} diff --git a/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy b/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy index 04fc768932a..b88a9d9750c 100644 --- a/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy +++ b/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy @@ -25775,6 +25775,33 @@ abstract class ApiHelper { } + def getVmHaNetworkGroupStatusOnHost(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetVmHaNetworkGroupStatusOnHostAction.class) Closure c) { + def a = new org.zstack.sdk.GetVmHaNetworkGroupStatusOnHostAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def getVmHostname(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetVmHostnameAction.class) Closure c) { def a = new org.zstack.sdk.GetVmHostnameAction() a.sessionId = Test.currentEnvSpec?.session?.uuid diff --git a/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java b/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java index 37be98cf482..fab389a4815 100644 --- a/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java +++ b/utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java @@ -1890,6 +1890,12 @@ public class CloudOperationsErrorCode { public static final String ORG_ZSTACK_HA_10034 = "ORG_ZSTACK_HA_10034"; + public static final String ORG_ZSTACK_HA_10035 = "ORG_ZSTACK_HA_10035"; + + public static final String ORG_ZSTACK_HA_10036 = "ORG_ZSTACK_HA_10036"; + + public static final String ORG_ZSTACK_HA_10037 = "ORG_ZSTACK_HA_10037"; + public static final String ORG_ZSTACK_NETWORK_SERVICE_SLB_10000 = "ORG_ZSTACK_NETWORK_SERVICE_SLB_10000"; public static final String ORG_ZSTACK_NETWORK_SERVICE_SLB_10001 = "ORG_ZSTACK_NETWORK_SERVICE_SLB_10001";