diff options
5 files changed, 25 insertions, 32 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java index 2ece6d12f7d..e1f8ef9b672 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java @@ -40,28 +40,27 @@ public final class ApplicationId implements Comparable<ApplicationId> { return new ApplicationId(TenantName.from(tenant), ApplicationName.from(application), InstanceName.from(instance)); } - /** Creates an application id from a string on the form application:environment:region:instance */ + /** + * Creates an application id from a string on the form application:environment:region:instance + * + * @deprecated don't pass TenantName + */ + @Deprecated // TODO: Remove when no version older than 6.90 is in use public static ApplicationId fromSerializedForm(TenantName tenant, String idString) { String[] parts = idString.split(":"); - if (parts.length < 3) { - throw new IllegalArgumentException("Illegal id string '" + idString + "'. Id string must consist of at least three parts separated by ':'"); - } + if (parts.length < 3) + throw new IllegalArgumentException("Application ids must be on the form tenant:application:instance, but was " + idString); - // Legacy id from 5.50 and backwards - if (parts.length < 4) { - return new Builder() - .tenant(parts[0]) - .applicationName(parts[1]) - .instanceName(parts[2]) - .build(); - - } else { - return new Builder() - .applicationName(parts[0]) - .instanceName(parts[3]) - .tenant(tenant) - .build(); - } + return new Builder().tenant(parts[0]).applicationName(parts[1]).instanceName(parts[2]).build(); + } + + + public static ApplicationId fromSerializedForm(String idString) { + String[] parts = idString.split(":"); + if (parts.length < 3) + throw new IllegalArgumentException("Application ids must be on the form tenant:application:instance, but was " + idString); + + return new Builder().tenant(parts[0]).applicationName(parts[1]).instanceName(parts[2]).build(); } @Override diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java index 33f5d0ce00a..c4ec02f3a9c 100644 --- a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java +++ b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java @@ -60,21 +60,15 @@ public class ApplicationIdTest { @Test public void require_that_idstring_can_be_parsed() { - ApplicationId id = ApplicationId.fromSerializedForm(TenantName.from("bim"), "foo:prod:baz:bim"); - assertThat(id.application().value(), is("foo")); - assertThat(id.instance().value(), is("bim")); - assertThat(id.tenant().value(), is("bim")); - - id = ApplicationId.fromSerializedForm(TenantName.from("unused"), "ten:foo:bim"); + ApplicationId id = ApplicationId.fromSerializedForm("ten:foo:bim"); assertThat(id.tenant().value(), is("ten")); assertThat(id.application().value(), is("foo")); assertThat(id.instance().value(), is("bim")); } - // TODO: Probably more test cases to break parsing. @Test(expected = IllegalArgumentException.class) public void require_that_invalid_idstring_throws_exception() { - ApplicationId.fromSerializedForm(TenantName.defaultName(), "foo:baz"); + ApplicationId.fromSerializedForm("foo:baz"); } @Test diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ZKTenantApplications.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ZKTenantApplications.java index 814c29504ed..5d6aba7b65b 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ZKTenantApplications.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ZKTenantApplications.java @@ -118,7 +118,7 @@ public class ZKTenantApplications implements TenantApplications, PathChildrenCac private Optional<ApplicationId> parseApplication(String appNode) { try { - return Optional.of(ApplicationId.fromSerializedForm(tenant, appNode)); + return Optional.of(ApplicationId.fromSerializedForm(appNode)); } catch (IllegalArgumentException e) { log.log(LogLevel.INFO, Tenants.logPre(tenant)+"Unable to parse application with id '" + appNode + "', ignoring."); return Optional.empty(); @@ -156,10 +156,10 @@ public class ZKTenantApplications implements TenantApplications, PathChildrenCac public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { switch (event.getType()) { case CHILD_ADDED: - applicationAdded(ApplicationId.fromSerializedForm(tenant, Path.fromString(event.getData().getPath()).getName())); + applicationAdded(ApplicationId.fromSerializedForm(Path.fromString(event.getData().getPath()).getName())); break; case CHILD_REMOVED: - applicationRemoved(ApplicationId.fromSerializedForm(tenant, Path.fromString(event.getData().getPath()).getName())); + applicationRemoved(ApplicationId.fromSerializedForm(Path.fromString(event.getData().getPath()).getName())); break; } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java index da1fda43f9f..ecb5d0980bb 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java @@ -159,7 +159,7 @@ public class SessionZooKeeperClient { log.log(LogLevel.INFO, "Unable to locate application id at '" + path + "', returning default"); return ApplicationId.defaultId(); } - return ApplicationId.fromSerializedForm(tenant, configCurator.getData(path)); + return ApplicationId.fromSerializedForm(configCurator.getData(path)); } catch (RuntimeException e) { throw new RuntimeException("Unable to read application id from '" + path + "'", e); } diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResource.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResource.java index 6fc413bee9a..438517591f9 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResource.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResource.java @@ -113,7 +113,7 @@ public class ApplicationSuspensionResource implements ApplicationSuspensionApi { private ApplicationId toApplicationId(String applicationIdString) { try { - return ApplicationId.fromSerializedForm(null, applicationIdString); + return ApplicationId.fromSerializedForm(applicationIdString); } catch (IllegalArgumentException e) { throw new BadRequestException(e); } |