summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@verizonmedia.com>2020-12-03 14:48:51 +0100
committerØyvind Grønnesby <oyving@verizonmedia.com>2020-12-03 14:48:51 +0100
commitf0771b2201f06684f66c7261c528167adb8f4c7b (patch)
tree1158d3766a71836c3e4306031ece938da79bfa2a /controller-server
parent43e6bec0556c37027d3cbdd119f557f7ea0eb8d1 (diff)
Rename the output value in the user API
- Renamed the user API so it's less confusing - Added tests for the user API functionality
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiHandler.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiTest.java17
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-athenz.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-cloud.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-applications.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-trial-capacity-cloud.json12
6 files changed, 36 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiHandler.java
index 7b3babdd2a8..954582a8ec7 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiHandler.java
@@ -164,7 +164,7 @@ public class UserApiHandler extends LoggingRequestHandler {
root.setBool("isCd", controller.system().isCd());
root.setBool(enable_public_signup_flow.id().toString(),
enable_public_signup_flow.with(FetchVector.Dimension.CONSOLE_USER_EMAIL, user.email()).value());
- root.setBool("maxTrialTenants", maxTrialTenants());
+ root.setBool("hasTrialCapacity", hasTrialCapacity());
toSlime(root.setObject("user"), user);
@@ -348,11 +348,11 @@ public class UserApiHandler extends LoggingRequestHandler {
return new MessageResponse(user + " is no longer a member of " + role);
}
- private boolean maxTrialTenants() {
- if (! controller.system().isPublic()) return false;
+ private boolean hasTrialCapacity() {
+ if (! controller.system().isPublic()) return true;
var existing = controller.tenants().asList().stream().map(Tenant::name).collect(Collectors.toList());
var trialTenants = controller.serviceRegistry().billingController().tenantsWithPlan(existing, PlanId.from("trial"));
- return maxTrialTenants.value() > 0 && maxTrialTenants.value() >= trialTenants.size();
+ return maxTrialTenants.value() < 0 || trialTenants.size() < maxTrialTenants.value();
}
private static Inspector bodyInspector(HttpRequest request) {
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiTest.java
index d9ad30020db..0ed30871ded 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiTest.java
@@ -245,4 +245,21 @@ public class UserApiTest extends ControllerContainerCloudTest {
.user(user),
new File("user-with-applications-cloud.json"));
}
+
+ @Test
+ public void maxTrialTenants() {
+ ContainerTester tester = new ContainerTester(container, responseFiles);
+ ((InMemoryFlagSource) tester.controller().flagSource())
+ .withIntFlag(Flags.MAX_TRIAL_TENANTS.id(), 1)
+ .withBooleanFlag(Flags.ENABLE_PUBLIC_SIGNUP_FLOW.id(), true);
+ ControllerTester controller = new ControllerTester(tester);
+ Set<Role> operator = Set.of(Role.hostedOperator(), Role.hostedSupporter(), Role.hostedAccountant());
+ User user = new User("dev@domail", "Joe Developer", "dev", null);
+
+ controller.createTenant("tenant1", Tenant.Type.cloud);
+
+ tester.assertResponse(
+ request("/api/user/v1/user").user(user),
+ new File("user-without-trial-capacity-cloud.json"));
+ }
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-athenz.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-athenz.json
index 40b48efbf62..2ae3514bec3 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-athenz.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-athenz.json
@@ -2,7 +2,7 @@
"isPublic": false,
"isCd": false,
"enable-public-signup-flow": (ignore),
- "maxTrialTenants": (ignore),
+ "hasTrialCapacity": (ignore),
"user": {
"name": "Joe Developer",
"email": "dev@domail",
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-cloud.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-cloud.json
index 24e7f0f8947..2d2a137c2ca 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-cloud.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-with-applications-cloud.json
@@ -2,7 +2,7 @@
"isPublic": true,
"isCd": false,
"enable-public-signup-flow": (ignore),
- "maxTrialTenants": (ignore),
+ "hasTrialCapacity": true,
"user": {
"name": "Joe Developer",
"email": "dev@domail",
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-applications.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-applications.json
index ee13e9b35a3..e03a18a1949 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-applications.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-applications.json
@@ -2,7 +2,7 @@
"isPublic": (ignore),
"isCd": (ignore),
"enable-public-signup-flow": (ignore),
- "maxTrialTenants": (ignore),
+ "hasTrialCapacity": (ignore),
"user": {
"name": "Joe Developer",
"email": "dev@domail",
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-trial-capacity-cloud.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-trial-capacity-cloud.json
new file mode 100644
index 00000000000..a7410b14850
--- /dev/null
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/user/responses/user-without-trial-capacity-cloud.json
@@ -0,0 +1,12 @@
+{
+ "isPublic": true,
+ "isCd": false,
+ "enable-public-signup-flow": true,
+ "hasTrialCapacity": false,
+ "user": {
+ "name": "Joe Developer",
+ "email": "dev@domail",
+ "nickname": "dev"
+ },
+ "tenants": {}
+} \ No newline at end of file