diff options
author | smorgrav <smorgrav@verizonmedia.com> | 2020-10-29 14:10:36 +0100 |
---|---|---|
committer | smorgrav <smorgrav@verizonmedia.com> | 2020-10-29 14:10:36 +0100 |
commit | 029c1d48dbf1a6405134156bd8d19363f536d00e (patch) | |
tree | 395d9f26e5fd8e25a814bce0fb9e3a075cc41872 /controller-server | |
parent | a7812b136b061fed17da514ab831a818bed7daf2 (diff) |
Back and forth on which cursor to work with in tenantinfo serialization
Diffstat (limited to 'controller-server')
3 files changed, 44 insertions, 8 deletions
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 d9a93ab9352..ab9f1fb45ec 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 @@ -23,7 +23,6 @@ import java.security.Principal; import java.security.PublicKey; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.Optional; /** @@ -59,7 +58,7 @@ public class TenantSerializer { private static final String customerIdField = "customerId"; private static final String productCodeField = "productCode"; private static final String pemDeveloperKeysField = "pemDeveloperKeys"; - private static final String tenantInfo = "info"; + private static final String tenantInfoField = "info"; public Slime toSlime(Tenant tenant) { Slime slime = new Slime(); @@ -134,7 +133,7 @@ public class TenantSerializer { TenantName name = TenantName.from(tenantObject.field(nameField).asString()); Optional<Principal> creator = SlimeUtils.optionalString(tenantObject.field(creatorField)).map(SimplePrincipal::new); BiMap<PublicKey, Principal> developerKeys = developerKeysFromSlime(tenantObject.field(pemDeveloperKeysField)); - TenantInfo info = tenantInfoFromSlime(tenantObject); + TenantInfo info = tenantInfoFromSlime(tenantObject.field(tenantInfoField)); return new CloudTenant(name, creator, developerKeys, info); } @@ -147,8 +146,7 @@ public class TenantSerializer { return keys.build(); } - TenantInfo tenantInfoFromSlime(Inspector parentObject) { - Inspector infoObject = parentObject.field("info"); + TenantInfo tenantInfoFromSlime(Inspector infoObject) { if (!infoObject.valid()) return TenantInfo.EmptyInfo; return TenantInfo.EmptyInfo diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/TenantInfoParser.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/TenantInfoParser.java new file mode 100644 index 00000000000..0c7f02b3042 --- /dev/null +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/TenantInfoParser.java @@ -0,0 +1,40 @@ +package com.yahoo.vespa.hosted.controller.restapi.application; + +import com.yahoo.slime.Inspector; +import com.yahoo.vespa.hosted.controller.tenant.TenantInfo; +import com.yahoo.vespa.hosted.controller.tenant.TenantInfoAddress; +import com.yahoo.vespa.hosted.controller.tenant.TenantInfoBillingContact; + +public class TenantInfoParser { + + TenantInfo tenantInfoFromSlime(Inspector infoObject) { + if (!infoObject.valid()) return TenantInfo.EmptyInfo; + + return TenantInfo.EmptyInfo + .withName(infoObject.field("name").asString()) + .withEmail(infoObject.field("email").asString()) + .withWebsite(infoObject.field("website").asString()) + .withContactName(infoObject.field("contactName").asString()) + .withContactEmail(infoObject.field("contactEmail").asString()) + .withInvoiceEmail(infoObject.field("invoiceEmail").asString()) + .withAddress(tenantInfoAddressFromSlime(infoObject.field("address"))) + .withBillingContact(tenantInfoBillingContactFromSlime(infoObject.field("billingContact"))); + } + + private TenantInfoAddress tenantInfoAddressFromSlime(Inspector addressObject) { + return TenantInfoAddress.EmptyAddress + .withAddressLines(addressObject.field("addressLines").asString()) + .withPostalCodeOrZip(addressObject.field("postalCodeOrZip").asString()) + .withCity(addressObject.field("city").asString()) + .withStateRegionProvince(addressObject.field("stateRegionProvince").asString()) + .withCountry(addressObject.field("country").asString()); + } + + private TenantInfoBillingContact tenantInfoBillingContactFromSlime(Inspector billingObject) { + return TenantInfoBillingContact.EmptyBillingContact + .withName(billingObject.field("name").asString()) + .withEmail(billingObject.field("email").asString()) + .withPhone(billingObject.field("phone").asString()) + .withAddress(tenantInfoAddressFromSlime(billingObject.field("address"))); + } +} diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java index 3e12629d864..1ef1753bb24 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java @@ -128,9 +128,7 @@ public class TenantSerializerTest { Slime slime = new Slime(); Cursor parentCursor = slime.setObject(); serializer.toSlime(fullInfo, parentCursor); - TenantInfo roundTripInfo = serializer.tenantInfoFromSlime(parentCursor); - String toStr = parentCursor.toString(); - + TenantInfo roundTripInfo = serializer.tenantInfoFromSlime(parentCursor.field("info")); assertTrue(fullInfo.equals(roundTripInfo)); } |