summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@vespa.ai>2024-01-31 11:44:22 +0100
committerValerij Fredriksen <valerijf@vespa.ai>2024-01-31 11:44:22 +0100
commit7e2cca971a16ffa6aae7f7ea51e71fc881b62c35 (patch)
tree240402a7fe10bc012533f64d1b188eef29695f34 /config-provisioning
parentd74c932e82613a995728a1a346564f5e7ec6dd49 (diff)
Support Azure Subscription ID in CloudAccount
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java1
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/CloudAccountTest.java10
2 files changed, 10 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 88583fc2007..5111cfb2704 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
@@ -18,6 +18,7 @@ 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]")));
/** Empty value. When this is used, either implicitly or explicitly, the zone will use its default account */
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/CloudAccountTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/CloudAccountTest.java
index c9230feaa6d..5af9cdb9263 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/CloudAccountTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/CloudAccountTest.java
@@ -46,6 +46,14 @@ class CloudAccountTest {
}
@Test
+ void azure_account() {
+ CloudAccount account = CloudAccount.from("azure:248ace13-1234-abcd-89ad-123456789abc");
+ assertEquals("248ace13-1234-abcd-89ad-123456789abc", account.account());
+ assertEquals(CloudName.AZURE, account.cloudName());
+ assertEquals("azure:248ace13-1234-abcd-89ad-123456789abc", account.value());
+ }
+
+ @Test
void default_accounts() {
CloudAccount variant1 = CloudAccount.from("");
CloudAccount variant2 = CloudAccount.from("default");
@@ -65,7 +73,7 @@ class CloudAccountTest {
assertInvalidAccount("aws:123", "Invalid cloud account 'aws:123': Account ID must match '[0-9]{12}'");
assertInvalidAccount("gcp:123", "Invalid cloud account 'gcp:123': Project ID must match '[a-z][a-z0-9-]{4,28}[a-z0-9]'");
assertInvalidAccount("$something", "Invalid cloud account '$something': Must be on format '<cloud-name>:<account>' or 'default'");
- assertInvalidAccount("unknown:account", "Invalid cloud account 'unknown:account': Cloud name must be one of: aws, gcp");
+ assertInvalidAccount("unknown:account", "Invalid cloud account 'unknown:account': Cloud name must be one of: aws, azure, gcp");
}
private static void assertInvalidAccount(String account, String message) {