From 6d5aea82a491c461ac0732022fd5092a0461fbab Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 19 Aug 2021 19:22:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4=20getInstanceSta?= =?UTF-8?q?te=20=E6=96=B9=E6=B3=95=E7=9A=84=E8=BF=94=E5=9B=9E=E5=80=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 目前遇到脚本无法直接访问 LifecycleState enum 类的情况, 所以暂时调整为返回 String. --- .../sentry/oci/compute/ComputeInstance.java | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/lamgc/oracle/sentry/oci/compute/ComputeInstance.java b/src/main/java/net/lamgc/oracle/sentry/oci/compute/ComputeInstance.java index b9a4233..2068771 100644 --- a/src/main/java/net/lamgc/oracle/sentry/oci/compute/ComputeInstance.java +++ b/src/main/java/net/lamgc/oracle/sentry/oci/compute/ComputeInstance.java @@ -107,32 +107,48 @@ public final class ComputeInstance { * @return 返回实例 SSH 客户端. */ public InstanceSsh ssh() { - Instance.LifecycleState instanceState = getInstanceState(); - if (instanceState != Instance.LifecycleState.Running) { + String instanceState = getInstanceState(); + if (!Instance.LifecycleState.Running.name().equals(instanceState)) { throw new IllegalStateException("The state of the current instance cannot connect to SSH: " + instanceState); } return new InstanceSsh(this, getSshIdentity()); } - public Instance.LifecycleState getInstanceState() { + /** + * 获取实例当前状态. + *

实例可有以下状态: + *

+ * @return 返回实例状态. + */ + public String getInstanceState() { GetInstanceResponse instance = computeClient.getInstance(GetInstanceRequest.builder() .instanceId(instanceId) .build()); - return instance.getInstance().getLifecycleState(); + return instance.getInstance().getLifecycleState().name(); } /** * 对实例执行操作. * @param action 操作类型. - * @return 如果成功, 返回实例最新状态. + * @return 如果成功, 返回实例最新状态(返回值意义见 {@link #getInstanceState()} 文档). */ - public Instance.LifecycleState execAction(InstanceAction action) { + public String execAction(InstanceAction action) { InstanceActionResponse actionResponse = computeClient.instanceAction(InstanceActionRequest.builder() .instanceId(instanceId) .action(action.getActionValue()) .build()); - return actionResponse.getInstance().getLifecycleState(); + return actionResponse.getInstance().getLifecycleState().name(); } /**