diff options
author | Valerij Fredriksen <valerij92@gmail.com> | 2021-01-20 15:54:04 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerij92@gmail.com> | 2021-01-20 16:23:58 +0100 |
commit | 7fce699b7816b71fc4f349e20ec699dbb4266939 (patch) | |
tree | eac9c728ce4276a08a8c02b550bab6e05c1584a4 /controller-server | |
parent | 9a768c486a9bbbb9c36f2d218ebf4d8de3dc590f (diff) |
Add last login times to application v4
Diffstat (limited to 'controller-server')
4 files changed, 14 insertions, 24 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 13599664cef..5a1496bf507 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 @@ -91,6 +91,7 @@ import com.yahoo.vespa.hosted.controller.security.AccessControlRequests; import com.yahoo.vespa.hosted.controller.security.Credentials; import com.yahoo.vespa.hosted.controller.tenant.AthenzTenant; import com.yahoo.vespa.hosted.controller.tenant.CloudTenant; +import com.yahoo.vespa.hosted.controller.tenant.LastLoginInfo; import com.yahoo.vespa.hosted.controller.tenant.Tenant; import com.yahoo.vespa.hosted.controller.tenant.TenantInfo; import com.yahoo.vespa.hosted.controller.tenant.TenantInfoAddress; @@ -1999,6 +2000,13 @@ public class ApplicationApiHandler extends LoggingRequestHandler { object.setLong("createdAtMillis", tenant.createdAt().toEpochMilli()); lastDev.ifPresent(instant -> object.setLong("lastDeploymentToDevMillis", instant.toEpochMilli())); lastSubmission.ifPresent(instant -> object.setLong("lastSubmissionToProdMillis", instant.toEpochMilli())); + + tenant.lastLoginInfo().get(LastLoginInfo.UserLevel.user) + .ifPresent(instant -> object.setLong("lastLoginByUserMillis", instant.toEpochMilli())); + tenant.lastLoginInfo().get(LastLoginInfo.UserLevel.developer) + .ifPresent(instant -> object.setLong("lastLoginByDeveloperMillis", instant.toEpochMilli())); + tenant.lastLoginInfo().get(LastLoginInfo.UserLevel.administrator) + .ifPresent(instant -> object.setLong("lastLoginByAdministratorMillis", instant.toEpochMilli())); } /** Returns a copy of the given URI with the host and port from the given URI, the path set to the given path and the query set to given query*/ diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index 2dfcd331d4f..d4dce889b97 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -193,8 +193,10 @@ public class ApplicationApiTest extends ControllerContainerTest { new File("tenant-without-applications-with-id.json")); // GET a tenant with property ID and contact information updateContactInformation(); + tester.controller().tenants().updateLastLogin(TenantName.from("tenant2"), + List.of(LastLoginInfo.UserLevel.user, LastLoginInfo.UserLevel.administrator), Instant.ofEpochMilli(1234)); tester.assertResponse(request("/application/v4/tenant/tenant2", GET).userIdentity(USER_ID), - new File("tenant-with-contact-info.json")); + new File("tenant2.json")); // POST (create) an application tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1", POST) 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 deleted file mode 100644 index 921eae72161..00000000000 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-contact-info.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "tenant": "tenant2", - "type": "ATHENS", - "athensDomain": "domain2", - "property": "property2", - "propertyId": "1234", - "propertyUrl": "www.properties.tld/1234", - "contactsUrl": "www.contacts.tld/1234", - "issueCreationUrl": "www.issues.tld/1234", - "contacts": [ - [ - "alice" - ], - [ - "bob" - ] - ], - "applications": [], - "metaData": { - "createdAtMillis": "(ignore)" - } -} 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 7da5918419c..497d80c96a5 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 @@ -17,6 +17,8 @@ ], "applications": [], "metaData": { - "createdAtMillis": "(ignore)" + "createdAtMillis": "(ignore)", + "lastLoginByUserMillis": 1234, + "lastLoginByAdministratorMillis": 1234 } }
\ No newline at end of file |