aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2019-03-21 16:29:44 +0100
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2019-03-21 16:29:44 +0100
commit6d8b531082e0b23649ce7efe7b092c1b37733c5f (patch)
tree0376e6a2c560cf06dff378a5d16af013fe37b4fe /controller-server/src
parent904015c7fe410cacd9657ea962fb2087800b1bdc (diff)
Switch over instanceof
Diffstat (limited to 'controller-server/src')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java51
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-contact-info.json4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant2.json4
3 files changed, 33 insertions, 26 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index ac2e78ba755..a0d807ac333 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -1081,11 +1081,26 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
private void toSlime(Cursor object, Tenant tenant, HttpRequest request) {
object.setString("tenant", tenant.name().value());
object.setString("type", tentantType(tenant));
- if (tenant instanceof AthenzTenant) {
- AthenzTenant athenzTenant = (AthenzTenant) tenant;
- object.setString("athensDomain", athenzTenant.domain().getName());
- object.setString("property", athenzTenant.property().id());
- athenzTenant.propertyId().ifPresent(id -> object.setString("propertyId", id.toString()));
+ switch (tenant.type()) {
+ case athenz:
+ AthenzTenant athenzTenant = (AthenzTenant) tenant;
+ object.setString("athensDomain", athenzTenant.domain().getName());
+ object.setString("property", athenzTenant.property().id());
+ athenzTenant.propertyId().ifPresent(id -> object.setString("propertyId", id.toString()));
+ athenzTenant.contact().ifPresent(c -> {
+ object.setString("propertyUrl", c.propertyUrl().toString());
+ object.setString("contactsUrl", c.url().toString());
+ object.setString("issueCreationUrl", c.issueTrackerUrl().toString());
+ Cursor contactsArray = object.setArray("contacts");
+ c.persons().forEach(persons -> {
+ Cursor personArray = contactsArray.addArray();
+ persons.forEach(personArray::addString);
+ });
+ });
+ break;
+ case user: break;
+ case cloud: break;
+ default: throw new IllegalArgumentException("Unexpected tenant type '" + tenant.type() + "'.");
}
Cursor applicationArray = object.setArray("applications");
for (Application application : controller.applications().asList(tenant.name())) {
@@ -1096,19 +1111,6 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
toSlime(application, applicationArray.addObject(), request);
}
}
- if (tenant instanceof AthenzTenant) {
- AthenzTenant athenzTenant = (AthenzTenant) tenant;
- athenzTenant.contact().ifPresent(c -> {
- object.setString("propertyUrl", c.propertyUrl().toString());
- object.setString("contactsUrl", c.url().toString());
- object.setString("issueCreationUrl", c.issueTrackerUrl().toString());
- Cursor contactsArray = object.setArray("contacts");
- c.persons().forEach(persons -> {
- Cursor personArray = contactsArray.addArray();
- persons.forEach(personArray::addString);
- });
- });
- }
}
// A tenant has different content when in a list ... antipattern, but not solvable before application/v5
@@ -1116,10 +1118,15 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
object.setString("tenant", tenant.name().value());
Cursor metaData = object.setObject("metaData");
metaData.setString("type", tentantType(tenant));
- if (tenant instanceof AthenzTenant) {
- AthenzTenant athenzTenant = (AthenzTenant) tenant;
- metaData.setString("athensDomain", athenzTenant.domain().getName());
- metaData.setString("property", athenzTenant.property().id());
+ switch (tenant.type()) {
+ case athenz:
+ AthenzTenant athenzTenant = (AthenzTenant) tenant;
+ metaData.setString("athensDomain", athenzTenant.domain().getName());
+ metaData.setString("property", athenzTenant.property().id());
+ break;
+ case user: break;
+ case cloud: break;
+ default: throw new IllegalArgumentException("Unexpected tenant type '" + tenant.type() + "'.");
}
object.setString("url", withPath("/application/v4/tenant/" + tenant.name().value(), requestURI).toString());
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-contact-info.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-contact-info.json
index 0ba0a01c5d0..01677f05eeb 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-contact-info.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-contact-info.json
@@ -4,7 +4,6 @@
"athensDomain": "domain2",
"property": "property2",
"propertyId": "1234",
- "applications": [],
"propertyUrl": "www.properties.tld/1234",
"contactsUrl": "www.contacts.tld/1234",
"issueCreationUrl": "www.issues.tld/1234",
@@ -15,5 +14,6 @@
[
"bob"
]
- ]
+ ],
+ "applications": []
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant2.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant2.json
index 6e66202b70d..2d6cc7b7208 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant2.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant2.json
@@ -4,7 +4,6 @@
"athensDomain": "domain2",
"property": "property2",
"propertyId": "1234",
- "applications": [],
"propertyUrl": "www.properties.tld/1234",
"contactsUrl": "www.contacts.tld/1234",
"issueCreationUrl": "www.issues.tld/1234",
@@ -15,5 +14,6 @@
[
"bob"
]
- ]
+ ],
+ "applications": []
} \ No newline at end of file