diff options
author | Valerij Fredriksen <valerij92@gmail.com> | 2021-05-07 13:18:36 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerij92@gmail.com> | 2021-05-07 13:29:36 +0200 |
commit | 44e1d3d13649d13938f79d521a960c645d6a8cb4 (patch) | |
tree | d2d54e3d60ab37a8b1ca8d626199a59899d16991 /controller-server/src/test/java/com | |
parent | 0126129f9be306288f70c50b078c8ece20ebb2b5 (diff) |
Support public systems in ControllerTester & ZoneRegistryMock
Diffstat (limited to 'controller-server/src/test/java/com')
3 files changed, 33 insertions, 47 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java index 77e6a8d054e..3e25a09b7d7 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java @@ -28,6 +28,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.dns.RecordName; import com.yahoo.vespa.hosted.controller.api.integration.organization.Contact; import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockMavenRepository; import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockUserManagement; +import com.yahoo.vespa.hosted.controller.api.role.Role; import com.yahoo.vespa.hosted.controller.api.role.SimplePrincipal; import com.yahoo.vespa.hosted.controller.application.SystemApplication; import com.yahoo.vespa.hosted.controller.application.TenantAndApplicationId; @@ -58,10 +59,10 @@ import java.time.Duration; import java.time.Instant; import java.time.ZoneOffset; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.OptionalLong; +import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.function.Consumer; @@ -98,12 +99,11 @@ public final class ControllerTester { this(new AthenzDbMock(), curatorDb, rotationsConfig, - new ServiceRegistryMock(), - SystemName.defaultSystem()); + new ServiceRegistryMock()); } public ControllerTester(ServiceRegistryMock serviceRegistryMock) { - this(new AthenzDbMock(), new MockCuratorDb(), defaultRotationsConfig(), serviceRegistryMock, SystemName.defaultSystem()); + this(new AthenzDbMock(), new MockCuratorDb(), defaultRotationsConfig(), serviceRegistryMock); } public ControllerTester(RotationsConfig rotationsConfig) { @@ -119,7 +119,7 @@ public final class ControllerTester { } public ControllerTester(SystemName system) { - this(new AthenzDbMock(), new MockCuratorDb(), defaultRotationsConfig(), new ServiceRegistryMock(), system); + this(new AthenzDbMock(), new MockCuratorDb(), defaultRotationsConfig(), new ServiceRegistryMock(system)); } private ControllerTester(AthenzDbMock athenzDb, boolean inContainer, @@ -143,10 +143,9 @@ public final class ControllerTester { private ControllerTester(AthenzDbMock athenzDb, CuratorDb curator, RotationsConfig rotationsConfig, - ServiceRegistryMock serviceRegistry, SystemName systemName) { + ServiceRegistryMock serviceRegistry) { this(athenzDb, false, curator, rotationsConfig, serviceRegistry, - systemName.isPublic() ? createCloudController(curator, rotationsConfig, serviceRegistry) : - createController(curator, rotationsConfig, athenzDb, serviceRegistry)); + createController(curator, rotationsConfig, athenzDb, serviceRegistry)); } /** Creates a ControllerTester built on the ContainerTester's controller. This controller can not be recreated. */ @@ -275,8 +274,7 @@ public final class ControllerTester { } public TenantName createTenant(String tenantName) { - return createTenant(tenantName, "domain" + nextDomainId.getAndIncrement(), - nextPropertyId.getAndIncrement()); + return createTenant(tenantName, zoneRegistry().system().isPublic() ? Tenant.Type.cloud : Tenant.Type.athenz); } public TenantName createTenant(String tenantName, Tenant.Type type) { @@ -313,7 +311,7 @@ public final class ControllerTester { private TenantName createCloudTenant(String tenantName) { TenantName tenant = TenantName.from(tenantName); TenantSpec spec = new CloudTenantSpec(tenant, "token"); - controller().tenants().create(spec, new Auth0Credentials(new SimplePrincipal("dev"), Collections.emptySet())); + controller().tenants().create(spec, new Auth0Credentials(new SimplePrincipal("dev"), Set.of(Role.administrator(tenant)))); return tenant; } @@ -358,11 +356,15 @@ public final class ControllerTester { private static Controller createController(CuratorDb curator, RotationsConfig rotationsConfig, AthenzDbMock athensDb, ServiceRegistryMock serviceRegistry) { + InMemoryFlagSource flagSource = new InMemoryFlagSource() + .withBooleanFlag(PermanentFlags.ENABLE_PUBLIC_SIGNUP_FLOW.id(), true); Controller controller = new Controller(curator, rotationsConfig, - new AthenzFacade(new AthenzClientFactoryMock(athensDb)), + serviceRegistry.zoneRegistry().system().isPublic() ? + new CloudAccessControl(new MockUserManagement(), flagSource, serviceRegistry) : + new AthenzFacade(new AthenzClientFactoryMock(athensDb)), () -> "test-controller", - new InMemoryFlagSource(), + flagSource, new MockMavenRepository(), serviceRegistry, new MetricsMock(), new SecretStoreMock(), @@ -372,25 +374,6 @@ public final class ControllerTester { return controller; } - private static Controller createCloudController(CuratorDb curator, RotationsConfig rotationsConfig, - ServiceRegistryMock serviceRegistry) { - var flagSource = new InMemoryFlagSource() - .withBooleanFlag(PermanentFlags.ENABLE_PUBLIC_SIGNUP_FLOW.id(), true); - Controller controller = new Controller( - curator, - rotationsConfig, - new CloudAccessControl(new MockUserManagement(), flagSource, serviceRegistry), - () -> "test-controller", - flagSource, - new MockMavenRepository(), - serviceRegistry, - new MetricsMock(), new SecretStoreMock(), - new ControllerConfig.Builder().build()); - // Calculate initial versions - controller.updateVersionStatus(VersionStatus.compute(controller)); - return controller; - } - private static RotationsConfig defaultRotationsConfig() { RotationsConfig.Builder builder = new RotationsConfig.Builder(); for (int i = 1; i <= availableRotations; i++) { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java index 976cdb5c674..5d6f1965009 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java @@ -41,7 +41,6 @@ import com.yahoo.vespa.hosted.controller.routing.Status; import javax.security.auth.x500.X500Principal; import java.math.BigInteger; -import java.net.URI; import java.security.KeyPair; import java.security.cert.X509Certificate; import java.time.Duration; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java index 1d2c743ffba..222b1d4ea21 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java @@ -50,21 +50,25 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry */ public ZoneRegistryMock(SystemName system) { this.system = system; - this.zones = List.of(ZoneApiMock.fromId("test.us-east-1"), - ZoneApiMock.fromId("staging.us-east-3"), - ZoneApiMock.fromId("dev.us-east-1"), - ZoneApiMock.fromId("dev.aws-us-east-2a"), - ZoneApiMock.fromId("perf.us-east-3"), - ZoneApiMock.fromId("prod.aws-us-east-1a"), - ZoneApiMock.fromId("prod.ap-northeast-1"), - ZoneApiMock.fromId("prod.ap-northeast-2"), - ZoneApiMock.fromId("prod.ap-southeast-1"), - ZoneApiMock.fromId("prod.us-east-3"), - ZoneApiMock.fromId("prod.us-west-1"), - ZoneApiMock.fromId("prod.us-central-1"), - ZoneApiMock.fromId("prod.eu-west-1")); + this.zones = system.isPublic() ? + List.of(ZoneApiMock.fromId("test.aws-us-east-1c"), + ZoneApiMock.fromId("staging.aws-us-east-1c"), + ZoneApiMock.fromId("prod.aws-us-east-1c")) : + List.of(ZoneApiMock.fromId("test.us-east-1"), + ZoneApiMock.fromId("staging.us-east-3"), + ZoneApiMock.fromId("dev.us-east-1"), + ZoneApiMock.fromId("dev.aws-us-east-2a"), + ZoneApiMock.fromId("perf.us-east-3"), + ZoneApiMock.fromId("prod.aws-us-east-1a"), + ZoneApiMock.fromId("prod.ap-northeast-1"), + ZoneApiMock.fromId("prod.ap-northeast-2"), + ZoneApiMock.fromId("prod.ap-southeast-1"), + ZoneApiMock.fromId("prod.us-east-3"), + ZoneApiMock.fromId("prod.us-west-1"), + ZoneApiMock.fromId("prod.us-central-1"), + ZoneApiMock.fromId("prod.eu-west-1")); // All zones use a shared routing method by default - setRoutingMethod(this.zones, RoutingMethod.shared); + setRoutingMethod(this.zones, system.isPublic() ? RoutingMethod.exclusive : RoutingMethod.shared); } public ZoneRegistryMock setDeploymentTimeToLive(ZoneId zone, Duration duration) { |