aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@verizonmedia.com>2020-08-05 15:02:35 +0200
committerØyvind Grønnesby <oyving@verizonmedia.com>2020-08-05 15:02:35 +0200
commit110d2ddfe12ee3c9a1a312f8cab727c956b881c1 (patch)
treeab0a37e33dba5b20f23e98fbfbc6303feacba9d3 /controller-server/src/main/java
parent75b7675c38fddf27daf17bcb46fc575d8dc8049e (diff)
Stop reading BillingInfo but write the default value
Preparing to completely remove BillingInfo as it was never used. First step is to stop reading it. Once that has propagated we can remove the class completely.
Diffstat (limited to 'controller-server/src/main/java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java16
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java9
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/security/CloudAccessControl.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java12
4 files changed, 14 insertions, 27 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java
index 12b985d1812..599fa962527 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java
@@ -100,26 +100,20 @@ public abstract class LockedTenant {
/** A locked CloudTenant. */
public static class Cloud extends LockedTenant {
- private final BillingInfo billingInfo;
private final BiMap<PublicKey, Principal> developerKeys;
- private Cloud(TenantName name, BillingInfo billingInfo, BiMap<PublicKey, Principal> developerKeys) {
+ private Cloud(TenantName name, BiMap<PublicKey, Principal> developerKeys) {
super(name);
- this.billingInfo = billingInfo;
this.developerKeys = ImmutableBiMap.copyOf(developerKeys);
}
private Cloud(CloudTenant tenant) {
- this(tenant.name(), tenant.billingInfo(), tenant.developerKeys());
+ this(tenant.name(), tenant.developerKeys());
}
@Override
public CloudTenant get() {
- return new CloudTenant(name, billingInfo, developerKeys);
- }
-
- public Cloud with(BillingInfo billingInfo) {
- return new Cloud(name, billingInfo, developerKeys);
+ return new CloudTenant(name, developerKeys);
}
public Cloud withDeveloperKey(PublicKey key, Principal principal) {
@@ -127,13 +121,13 @@ public abstract class LockedTenant {
if (keys.containsKey(key))
throw new IllegalArgumentException("Key " + KeyUtils.toPem(key) + " is already owned by " + keys.get(key));
keys.put(key, principal);
- return new Cloud(name, billingInfo, keys);
+ return new Cloud(name, keys);
}
public Cloud withoutDeveloperKey(PublicKey key) {
BiMap<PublicKey, Principal> keys = HashBiMap.create(developerKeys);
keys.remove(key);
- return new Cloud(name, billingInfo, keys);
+ return new Cloud(name, keys);
}
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
index d4d5f4deb7b..5e9d5c44d4c 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
@@ -84,8 +84,12 @@ public class TenantSerializer {
}
private void toSlime(CloudTenant tenant, Cursor root) {
+ // BillingInfo was never used and always just a static default value. To retire this
+ // field we continue to write the default value and stop reading it.
+ // TODO(ogronnesby, 2020-08-05): Remove when a version where we do not read the field has propagated.
+ var legacyBillingInfo = new BillingInfo("customer", "Vespa");
developerKeysToSlime(tenant.developerKeys(), root.setArray(pemDeveloperKeysField));
- toSlime(tenant.billingInfo(), root.setObject(billingInfoField));
+ toSlime(legacyBillingInfo, root.setObject(billingInfoField));
}
private void developerKeysToSlime(BiMap<PublicKey, Principal> keys, Cursor array) {
@@ -124,9 +128,8 @@ public class TenantSerializer {
private CloudTenant cloudTenantFrom(Inspector tenantObject) {
TenantName name = TenantName.from(tenantObject.field(nameField).asString());
- BillingInfo billingInfo = billingInfoFrom(tenantObject.field(billingInfoField));
BiMap<PublicKey, Principal> developerKeys = developerKeysFromSlime(tenantObject.field(pemDeveloperKeysField));
- return new CloudTenant(name, billingInfo, developerKeys);
+ return new CloudTenant(name, developerKeys);
}
private BiMap<PublicKey, Principal> developerKeysFromSlime(Inspector array) {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/security/CloudAccessControl.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/security/CloudAccessControl.java
index ec4d9ff3626..320b376c2ae 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/security/CloudAccessControl.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/security/CloudAccessControl.java
@@ -34,8 +34,6 @@ import static com.yahoo.vespa.hosted.controller.api.role.RoleDefinition.*;
*/
public class CloudAccessControl implements AccessControl {
- private static final BillingInfo defaultBillingInfo = new BillingInfo("customer", "Vespa");
-
private final UserManagement userManagement;
private final BooleanFlag enablePublicSignup;
private final BillingController billingController;
@@ -52,7 +50,7 @@ public class CloudAccessControl implements AccessControl {
requireTenantCreationAllowed((Auth0Credentials) credentials);
CloudTenantSpec spec = (CloudTenantSpec) tenantSpec;
- CloudTenant tenant = CloudTenant.create(spec.tenant(), defaultBillingInfo);
+ CloudTenant tenant = CloudTenant.create(spec.tenant());
for (Role role : Roles.tenantRoles(spec.tenant())) {
userManagement.createRole(role);
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java
index 8601fb34e8f..d208a1e4e63 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java
@@ -4,11 +4,9 @@ package com.yahoo.vespa.hosted.controller.tenant;
import com.google.common.collect.BiMap;
import com.google.common.collect.ImmutableBiMap;
import com.yahoo.config.provision.TenantName;
-import com.yahoo.vespa.hosted.controller.api.integration.organization.BillingInfo;
import java.security.Principal;
import java.security.PublicKey;
-import java.util.Objects;
import java.util.Optional;
/**
@@ -18,26 +16,20 @@ import java.util.Optional;
*/
public class CloudTenant extends Tenant {
- private final BillingInfo billingInfo;
private final BiMap<PublicKey, Principal> developerKeys;
/** Public for the serialization layer — do not use! */
- public CloudTenant(TenantName name, BillingInfo info, BiMap<PublicKey, Principal> developerKeys) {
+ public CloudTenant(TenantName name, BiMap<PublicKey, Principal> developerKeys) {
super(name, Optional.empty());
- billingInfo = info;
this.developerKeys = developerKeys;
}
/** Creates a tenant with the given name, provided it passes validation. */
- public static CloudTenant create(TenantName tenantName, BillingInfo billingInfo) {
+ public static CloudTenant create(TenantName tenantName) {
return new CloudTenant(requireName(tenantName),
- Objects.requireNonNull(billingInfo),
ImmutableBiMap.of());
}
- /** Returns the billing info for this tenant. */
- public BillingInfo billingInfo() { return billingInfo; }
-
/** Returns the set of developer keys and their corresponding developers for this tenant. */
public BiMap<PublicKey, Principal> developerKeys() { return developerKeys; }