Repository: incubator-brooklyn Updated Branches: refs/heads/master 77a7f6f68 -> c900f32a4
Adds name of currently logged in user to LocationEvent and ApplicationEvent Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/92968446 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/92968446 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/92968446 Branch: refs/heads/master Commit: 92968446336e15e28ac7d609a7e9e7e556c2d0a4 Parents: 77a7f6f Author: Martin Harris <[email protected]> Authored: Tue Mar 31 16:50:42 2015 +0100 Committer: Martin Harris <[email protected]> Committed: Tue Mar 31 16:50:42 2015 +0100 ---------------------------------------------------------------------- .../management/internal/LocalUsageManager.java | 14 ++++++++-- .../management/usage/ApplicationUsage.java | 22 +++++++++++----- .../management/usage/LocationUsage.java | 27 ++++++++++++++------ 3 files changed, 47 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/92968446/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java b/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java index 02fef4a..68f5088 100644 --- a/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java +++ b/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java @@ -44,6 +44,8 @@ import brooklyn.location.Location; import brooklyn.location.basic.LocationConfigKeys; import brooklyn.location.basic.LocationInternal; import brooklyn.management.ManagementContextInjectable; +import brooklyn.management.entitlement.EntitlementContext; +import brooklyn.management.entitlement.Entitlements; import brooklyn.management.usage.ApplicationUsage; import brooklyn.management.usage.LocationUsage; import brooklyn.util.exceptions.Exceptions; @@ -250,7 +252,7 @@ public class LocalUsageManager implements UsageManager { if (usage == null) { usage = new ApplicationUsage(app.getId(), app.getDisplayName(), app.getEntityType().getName(), ((EntityInternal)app).toMetadataRecord()); } - final ApplicationUsage.ApplicationEvent event = new ApplicationUsage.ApplicationEvent(state); + final ApplicationUsage.ApplicationEvent event = new ApplicationUsage.ApplicationEvent(state, getUser()); usage.addEvent(event); eventMap.put(app.getId(), usage); @@ -300,7 +302,7 @@ public class LocalUsageManager implements UsageManager { Entity caller = (Entity) callerContext; String entityTypeName = caller.getEntityType().getName(); String appId = caller.getApplicationId(); - final LocationUsage.LocationEvent event = new LocationUsage.LocationEvent(state, caller.getId(), entityTypeName, appId); + final LocationUsage.LocationEvent event = new LocationUsage.LocationEvent(state, caller.getId(), entityTypeName, appId, getUser()); ConcurrentMap<String, LocationUsage> usageMap = managementContext.getStorage().<String, LocationUsage>getMap(LOCATION_USAGE_KEY); synchronized (mutex) { @@ -409,4 +411,12 @@ public class LocalUsageManager implements UsageManager { public void removeUsageListener(brooklyn.management.internal.UsageListener listener) { listeners.remove(listener); } + + private String getUser() { + EntitlementContext entitlementContext = Entitlements.getEntitlementContext(); + if (entitlementContext != null) { + return entitlementContext.user(); + } + return null; + } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/92968446/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java b/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java index 3dd30f4..7186783 100644 --- a/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java +++ b/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java @@ -38,14 +38,20 @@ public class ApplicationUsage { public static class ApplicationEvent { private final Date date; private final Lifecycle state; + private final String user; - public ApplicationEvent(Lifecycle state) { - this(new Date(), state); + public ApplicationEvent(Lifecycle state, String user) { + this(new Date(), state, user); } public ApplicationEvent(Date date, Lifecycle state) { + this(date,state, null); + } + + public ApplicationEvent(Date date, Lifecycle state, String user) { this.date = checkNotNull(date, "date"); this.state = checkNotNull(state, "state"); + this.user = user; } public Date getDate() { @@ -55,22 +61,26 @@ public class ApplicationUsage { public Lifecycle getState() { return state; } - + + public String getUser() { + return user; + } + @Override public boolean equals(Object other) { if (!(other instanceof ApplicationEvent)) return false; ApplicationEvent o = (ApplicationEvent) other; - return Objects.equal(date, o.date) && Objects.equal(state, o.state); + return Objects.equal(date, o.date) && Objects.equal(state, o.state) && Objects.equal(user, o.user); } @Override public int hashCode() { - return Objects.hashCode(date, state); + return Objects.hashCode(date, state, user); } @Override public String toString() { - return Objects.toStringHelper(this).add("date", date).add("state", state).toString(); + return Objects.toStringHelper(this).add("date", date).add("state", state).add("entitlementContext", user).toString(); } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/92968446/core/src/main/java/brooklyn/management/usage/LocationUsage.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/usage/LocationUsage.java b/core/src/main/java/brooklyn/management/usage/LocationUsage.java index a8323d2..fbca540 100644 --- a/core/src/main/java/brooklyn/management/usage/LocationUsage.java +++ b/core/src/main/java/brooklyn/management/usage/LocationUsage.java @@ -41,17 +41,19 @@ public class LocationUsage { private final String entityId; private final String entityType; private final String applicationId; + private final String user; - public LocationEvent(Lifecycle state, String entityId, String entityType, String applicationId) { - this(new Date(), state, entityId, entityType, applicationId); + public LocationEvent(Lifecycle state, String entityId, String entityType, String applicationId, String user) { + this(new Date(), state, entityId, entityType, applicationId, user); } - public LocationEvent(Date date, Lifecycle state, String entityId, String entityType, String applicationId) { + public LocationEvent(Date date, Lifecycle state, String entityId, String entityType, String applicationId, String user) { this.date = checkNotNull(date, "date"); this.state = checkNotNull(state, "state"); this.entityId = checkNotNull(entityId, "entityId"); this.entityType = checkNotNull(entityType, "entityType"); this.applicationId = checkNotNull(applicationId, "applicationId (entity "+entityId+")"); + this.user = user; } public Date getDate() { @@ -73,25 +75,34 @@ public class LocationUsage { public String getApplicationId() { return applicationId; } - + + public String getUser() { + return user; + } + @Override public boolean equals(Object other) { if (!(other instanceof LocationEvent)) return false; LocationEvent o = (LocationEvent) other; return Objects.equal(date, o.date) && Objects.equal(state, o.state) && Objects.equal(entityId, o.entityId) && Objects.equal(entityType, o.entityType) - && Objects.equal(applicationId, o.applicationId); + && Objects.equal(applicationId, o.applicationId) && Objects.equal(user, o.user); } @Override public int hashCode() { - return Objects.hashCode(date, state, entityId, entityType, applicationId); + return Objects.hashCode(date, state, entityId, entityType, applicationId, user); } @Override public String toString() { - return Objects.toStringHelper(this).add("date", date).add("state", state).add("entityId", entityId) - .add("appId", applicationId).toString(); + return Objects.toStringHelper(this) + .add("date", date) + .add("state", state) + .add("entityId", entityId) + .add("appId", applicationId) + .add("user", user) + .toString(); } }
