From a128748b4ffad678ffb7ac7efba39102b1991c58 Mon Sep 17 00:00:00 2001 From: LamGC Date: Fri, 10 Sep 2021 02:27:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=B8=90=E5=8F=B7=E5=8C=BA=E5=9F=9F=E8=AE=A2=E9=98=85=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=92=8C=E7=9B=B4=E6=8E=A5=E8=8E=B7=E5=8F=96=E4=B8=BB?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E8=AE=A2=E9=98=85=E4=BF=A1=E6=81=AF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加 regions 和 mainRegion 方法, 可快速获取帐号所订阅的所有区域, 以及主区域的信息. --- .../sentry/oci/account/OracleAccount.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/net/lamgc/oracle/sentry/oci/account/OracleAccount.java b/src/main/java/net/lamgc/oracle/sentry/oci/account/OracleAccount.java index 99905a1..1ff6bf2 100644 --- a/src/main/java/net/lamgc/oracle/sentry/oci/account/OracleAccount.java +++ b/src/main/java/net/lamgc/oracle/sentry/oci/account/OracleAccount.java @@ -1,9 +1,13 @@ package net.lamgc.oracle.sentry.oci.account; import com.oracle.bmc.auth.AuthenticationDetailsProvider; +import com.oracle.bmc.identity.model.RegionSubscription; import com.oracle.bmc.identity.model.User; import com.oracle.bmc.identity.requests.GetUserRequest; +import com.oracle.bmc.identity.requests.ListRegionSubscriptionsRequest; +import java.util.List; +import java.util.NoSuchElementException; import java.util.Objects; /** @@ -57,6 +61,30 @@ public final class OracleAccount { return this.user.getDescription(); } + /** + * 获取用户订阅的所有地区. + * @return 返回已订阅地区列表. + */ + public List regions() { + return this.clients.identity().listRegionSubscriptions(ListRegionSubscriptionsRequest.builder() + .tenancyId(this.id()) + .build()).getItems(); + } + + /** + * 获取帐号主区域. + * @return 返回帐号主区域. + * @throws NoSuchElementException 当主区域搜索失败时抛出. + */ + public RegionSubscription mainRegion() { + for (RegionSubscription subscription : regions()) { + if (subscription.getIsHomeRegion()) { + return subscription; + } + } + throw new NoSuchElementException("Primary region not found."); + } + /** * 获取该账户所属的 API 客户端集合. * @return 返回该账户所属的甲骨文 API 客户端集.