diff options
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java index 36a37d61b13..59845faa855 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java @@ -3,6 +3,7 @@ package com.yahoo.config.provision; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -19,7 +20,8 @@ public class CloudAccount implements Comparable<CloudAccount> { private static final Map<String, CloudMeta> META_BY_CLOUD = Map.of( "aws", new CloudMeta("Account ID", Pattern.compile("[0-9]{12}")), "azure", new CloudMeta("Subscription ID", Pattern.compile("[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}")), - "gcp", new CloudMeta("Project ID", Pattern.compile("[a-z][a-z0-9-]{4,28}[a-z0-9]"))); + "gcp", new CloudMeta("Project ID", Pattern.compile("[a-z][a-z0-9-]{4,28}[a-z0-9]")), + "yahoo", new CloudMeta("OpenStack Project", Pattern.compile("[a-zA-Z0-9._-]+"))); /** Empty value. When this is used, either implicitly or explicitly, the zone will use its default account */ public static final CloudAccount empty = new CloudAccount("", CloudName.DEFAULT); @@ -58,6 +60,11 @@ public class CloudAccount implements Comparable<CloudAccount> { !equals(zone.cloud().account()); } + /** Returns a cloud account if this is an enclave account, or empty otherwise. */ + public Optional<CloudAccount> toEnclaveAccount(Zone zone) { + return isEnclave(zone) ? Optional.of(this) : Optional.empty(); + } + @Override public String toString() { return isUnspecified() ? "unspecified account" : "account '" + account + "' in " + cloudName; |