You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2017/11/10 11:05:18 UTC
[1/4] brooklyn-server git commit: Merge branch 'enhancements' into r2
Repository: brooklyn-server
Updated Branches:
refs/heads/master b7ad01e96 -> c68cbaffe
Merge branch 'enhancements' into r2
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/4f607ece
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/4f607ece
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/4f607ece
Branch: refs/heads/master
Commit: 4f607ecee1cdb00e112244375be3fdd60fb79400
Parents: 34016b6 6fa3b7a
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Nov 9 18:52:58 2017 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Nov 9 18:52:58 2017 +0000
----------------------------------------------------------------------
.../brooklyn/api/mgmt/ManagementContext.java | 13 +++--
.../brooklyn/core/entity/EntityAsserts.java | 4 +-
.../internal/AbstractManagementContext.java | 50 +++++++++++++++++++-
.../NonDeploymentManagementContext.java | 13 +++++
.../brooklyn/util/core/task/BasicTask.java | 9 ++--
.../apache/brooklyn/util/core/task/Tasks.java | 5 +-
.../brooklyn/enricher/stock/EnrichersTest.java | 11 +++++
7 files changed, 94 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/4f607ece/core/src/main/java/org/apache/brooklyn/util/core/task/Tasks.java
----------------------------------------------------------------------
[2/4] brooklyn-server git commit: mark the batch config read as
transient
Posted by al...@apache.org.
mark the batch config read as transient
otherwise it wipes out other things from activity history
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/ff1ed3cd
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/ff1ed3cd
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/ff1ed3cd
Branch: refs/heads/master
Commit: ff1ed3cd66be2168f8386da163fb287b131bf54e
Parents: 4f607ec
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Nov 9 18:51:17 2017 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Nov 9 18:53:14 2017 +0000
----------------------------------------------------------------------
.../apache/brooklyn/rest/resources/EntityConfigResource.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ff1ed3cd/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityConfigResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityConfigResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityConfigResource.java
index 3431b99..a3698b9 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityConfigResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityConfigResource.java
@@ -29,6 +29,8 @@ import org.apache.brooklyn.core.config.BasicConfigKey;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.EntityInternal;
import org.apache.brooklyn.core.entity.internal.EntityConfigMap;
+import org.apache.brooklyn.core.mgmt.BrooklynTags;
+import org.apache.brooklyn.core.mgmt.BrooklynTaskTags;
import org.apache.brooklyn.core.mgmt.entitlement.Entitlements;
import org.apache.brooklyn.core.mgmt.entitlement.Entitlements.EntityAndItem;
import org.apache.brooklyn.rest.api.EntityConfigApi;
@@ -88,7 +90,9 @@ public class EntityConfigResource extends AbstractBrooklynRestResource implement
}
// wrap in a task for better runtime view
- return Entities.submit(entity, Tasks.<Map<String,Object>>builder().displayName("REST API batch config read").body(new BatchConfigRead(mgmt(), this, entity, raw)).build()).getUnchecked();
+ return Entities.submit(entity, Tasks.<Map<String,Object>>builder().displayName("REST API batch config read")
+ .tag(BrooklynTaskTags.TRANSIENT_TASK_TAG)
+ .body(new BatchConfigRead(mgmt(), this, entity, raw)).build()).getUnchecked();
}
private static class BatchConfigRead implements Callable<Map<String,Object>> {
[4/4] brooklyn-server git commit: This closes #890
Posted by al...@apache.org.
This closes #890
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/c68cbaff
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/c68cbaff
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/c68cbaff
Branch: refs/heads/master
Commit: c68cbaffee6e5f8bac0441d634e1cf2a31e8ee81
Parents: b7ad01e ba1c37c
Author: Aled Sage <al...@gmail.com>
Authored: Fri Nov 10 10:59:40 2017 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Fri Nov 10 10:59:40 2017 +0000
----------------------------------------------------------------------
.../brooklyn/rest/api/ApplicationApi.java | 15 ++++---
.../org/apache/brooklyn/rest/api/EntityApi.java | 6 +--
.../brooklyn/rest/domain/EntitySummary.java | 24 ++++++++++-
.../rest/resources/ApplicationResource.java | 45 +++++++++++++++-----
.../rest/resources/EntityConfigResource.java | 6 ++-
.../rest/resources/ApplicationResourceTest.java | 41 +++++++++---------
6 files changed, 97 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
[3/4] brooklyn-server git commit: add to REST API ability to include
specific sensors when fetching
Posted by al...@apache.org.
add to REST API ability to include specific sensors when fetching
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/ba1c37c5
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/ba1c37c5
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/ba1c37c5
Branch: refs/heads/master
Commit: ba1c37c54e980647e2a6029e84e279986c1eab04
Parents: ff1ed3c
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Nov 9 18:45:42 2017 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Nov 9 18:53:23 2017 +0000
----------------------------------------------------------------------
.../brooklyn/rest/api/ApplicationApi.java | 15 ++++---
.../org/apache/brooklyn/rest/api/EntityApi.java | 6 +--
.../brooklyn/rest/domain/EntitySummary.java | 24 ++++++++++-
.../rest/resources/ApplicationResource.java | 45 +++++++++++++++-----
.../rest/resources/ApplicationResourceTest.java | 41 +++++++++---------
5 files changed, 92 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba1c37c5/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
index 2e66fa4..3dab15e 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
@@ -56,16 +56,21 @@ public interface ApplicationApi {
@GET
@Path("/fetch")
@ApiOperation(
- value = "Fetch display details for all applications and optionally selected additional entities"
+ value = "Fetch details for all applications and optionally selected additional entity items, "
+ + "optionally also with the values for selected sensors"
)
public List<EntityDetail> fetch(
- @ApiParam(value="Selected additional entity ID's to include, comma-separated", required=false)
+ @ApiParam(value="Any additional entity ID's to include, as JSON or comma-separated list", required=false)
@DefaultValue("")
- @QueryParam("items") String items);
+ @QueryParam("items") String items,
+ @ApiParam(value="Any additional sensors to include, as JSON or comma-separated list; "
+ + "current sensor values if present are returned for each entity in a name-value map under the 'sensors' key", required=false)
+ @DefaultValue("")
+ @QueryParam("sensors") String sensors);
@GET
@ApiOperation(
- value = "Fetch list of applications, as ApplicationSummary objects",
+ value = "Fetch the list of applications managed here",
response = org.apache.brooklyn.rest.domain.ApplicationSummary.class
)
public List<ApplicationSummary> list(
@@ -82,7 +87,7 @@ public interface ApplicationApi {
@GET
@Path("/{application}")
@ApiOperation(
- value = "Fetch a specific application",
+ value = "Fetch details of an application",
response = org.apache.brooklyn.rest.domain.ApplicationSummary.class
)
@ApiResponses(value = {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba1c37c5/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/EntityApi.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/EntityApi.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/EntityApi.java
index d475b52..9455575 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/EntityApi.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/EntityApi.java
@@ -42,7 +42,7 @@ import java.util.Map;
public interface EntityApi {
@GET
- @ApiOperation(value = "Fetch the list of entities for a given application",
+ @ApiOperation(value = "Fetch the list of children entities directly under the root of an application",
response = org.apache.brooklyn.rest.domain.EntitySummary.class,
responseContainer = "List")
@ApiResponses(value = {
@@ -54,7 +54,7 @@ public interface EntityApi {
@GET
@Path("/{entity}")
- @ApiOperation(value = "Fetch details about a specific application entity",
+ @ApiOperation(value = "Fetch details of an entity",
response = org.apache.brooklyn.rest.domain.EntitySummary.class)
@ApiResponses(value = {
@ApiResponse(code = 404, message = "Application or entity missing")
@@ -67,7 +67,7 @@ public interface EntityApi {
// TODO rename as "/children" ?
@GET
- @ApiOperation(value = "Fetch details about a specific application entity's children",
+ @ApiOperation(value = "Fetch the list of children of an entity",
response = org.apache.brooklyn.rest.domain.EntitySummary.class)
@Path("/{entity}/children")
public List<EntitySummary> getChildren(
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba1c37c5/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java
index ae123ef..ae8585c 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java
@@ -23,6 +23,12 @@ import java.net.URI;
import java.util.Map;
import java.util.Objects;
+import org.apache.brooklyn.util.collections.MutableMap;
+import org.apache.brooklyn.util.javalang.JavaClassNames;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -39,6 +45,11 @@ public class EntitySummary implements HasId, HasName, Serializable {
private final String catalogItemId;
private final Map<String, URI> links;
+ // not exported directly, but used to provide other top-level json fields
+ // for specific types
+ @JsonIgnore
+ private final Map<String,Object> others = MutableMap.of();
+
public EntitySummary(
@JsonProperty("id") String id,
@JsonProperty("name") String name,
@@ -74,6 +85,16 @@ public class EntitySummary implements HasId, HasName, Serializable {
return links;
}
+ /** Mutable map of other top-level metadata included on this DTO (eg listing config keys or effectors) */
+ @JsonAnyGetter
+ public Map<String,Object> getExtraFields() {
+ return others;
+ }
+ @JsonAnySetter
+ public void setExtraField(String name, Object value) {
+ others.put(name, value);
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -93,11 +114,12 @@ public class EntitySummary implements HasId, HasName, Serializable {
@Override
public String toString() {
- return "EntitySummary{" +
+ return JavaClassNames.simpleClassName(this)+"{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", type='" + type + '\'' +
", catalogItemId='" + catalogItemId + '\'' +
+ (!getExtraFields().isEmpty() ? ", others='"+getExtraFields()+"'" : "")+
", links=" + links +
'}';
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba1c37c5/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
index e7176b9..c9973ce 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
@@ -32,6 +32,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
+import java.util.stream.Collectors;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -84,6 +85,7 @@ import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.javalang.JavaClassNames;
import org.apache.brooklyn.util.net.Urls;
import org.apache.brooklyn.util.repeat.Repeater;
+import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
import org.apache.brooklyn.util.text.Strings;
import org.apache.brooklyn.util.time.Duration;
import org.slf4j.Logger;
@@ -177,25 +179,22 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
}
@Override
- public List<EntityDetail> fetch(String entityIds) {
+ public List<EntityDetail> fetch(String entityIds, String extraSensorsS) {
+ List<String> extraSensorNames = JavaStringEscapes.unwrapOptionallyQuotedJavaStringList(extraSensorsS);
+ List<AttributeSensor<?>> extraSensors = extraSensorNames.stream().map((s) -> Sensors.newSensor(Object.class, s)).collect(Collectors.toList());
List<EntityDetail> entitySummaries = Lists.newArrayList();
for (Entity application : mgmt().getApplications()) {
- entitySummaries.add(fromEntity(application));
+ entitySummaries.add(addSensors(fromEntity(application), application, extraSensors));
}
- if (entityIds != null) {
- entityIds = entityIds.trim();
- if ((entityIds.startsWith("{") && entityIds.endsWith("}")) ||
- (entityIds.startsWith("[") && entityIds.endsWith("]"))) {
- // trim [] or {} in case caller supplied glob or json syntax
- entityIds = entityIds.substring(1, entityIds.length()-1);
- }
- for (String entityId: entityIds.split(",")) {
+ if (Strings.isNonBlank(entityIds)) {
+ List<String> extraEntities = JavaStringEscapes.unwrapOptionallyQuotedJavaStringList(entityIds);
+ for (String entityId: extraEntities) {
Entity entity = mgmt().getEntityManager().getEntity(entityId.trim());
while (entity != null && entity.getParent() != null) {
if (Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.SEE_ENTITY, entity)) {
- entitySummaries.add(fromEntity(entity));
+ entitySummaries.add(addSensors(fromEntity(entity), entity, extraSensors));
}
entity = entity.getParent();
}
@@ -204,6 +203,30 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
return entitySummaries;
}
+ private EntityDetail addSensors(EntityDetail result, Entity entity, List<AttributeSensor<?>> extraSensors) {
+ if (extraSensors!=null && !extraSensors.isEmpty()) {
+ Object sensorsO = result.getExtraFields().get("sensors");
+ if (sensorsO==null) {
+ sensorsO = MutableMap.of();
+ result.setExtraField("sensors", sensorsO);
+ }
+ if (!(sensorsO instanceof Map)) {
+ throw new IllegalStateException("sensors field in result for "+entity+" should be a Map; found: "+sensorsO);
+ }
+ @SuppressWarnings("unchecked")
+ Map<String,Object> sensors = (Map<String, Object>) sensorsO;
+
+ for (AttributeSensor<?> s: extraSensors) {
+ Object sv = entity.sensors().get(s);
+ if (sv!=null) {
+ sv = resolving(sv).preferJson(true).asJerseyOutermostReturnValue(false).raw(true).context(entity).immediately(true).timeout(Duration.ZERO).resolve();
+ sensors.put(s.getName(), sv);
+ }
+ }
+ }
+ return result;
+ }
+
@Override
public List<ApplicationSummary> list(String typeRegex) {
if (Strings.isBlank(typeRegex)) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ba1c37c5/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
index 03607bb..b3b5260 100644
--- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
+++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
@@ -49,6 +49,7 @@ import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.EntityFunctions;
import org.apache.brooklyn.core.entity.EntityPredicates;
import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
+import org.apache.brooklyn.core.entity.lifecycle.Lifecycle.Transition;
import org.apache.brooklyn.core.location.AbstractLocation;
import org.apache.brooklyn.core.location.LocationConfigKeys;
import org.apache.brooklyn.core.location.geo.HostGeoInfo;
@@ -76,6 +77,7 @@ import org.apache.brooklyn.rest.testing.mocks.RestMockApp;
import org.apache.brooklyn.rest.testing.mocks.RestMockSimpleEntity;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.CollectionFunctionals;
+import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.http.HttpAsserts;
import org.apache.brooklyn.util.stream.Streams;
@@ -91,6 +93,7 @@ import org.testng.annotations.Test;
import com.google.common.base.Joiner;
import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
@@ -332,22 +335,8 @@ public class ApplicationResourceTest extends BrooklynRestResourceTest {
}
}
- /**
- * TODO BROOKLYN-272, Disabled, because fails non-deterministically in jenkins (windows),
- * as commented by Svet in https://github.com/apache/brooklyn-library/pull/39.
- * testFetchApplicationsAndEntity(org.apache.brooklyn.rest.resources.ApplicationResourceTest) Time elapsed: 0.073 sec <<< FAILURE!
- * java.lang.AssertionError: expected [4] but found [3]
- * at org.testng.Assert.fail(Assert.java:94)
- * at org.testng.Assert.failNotEquals(Assert.java:494)
- * at org.testng.Assert.assertEquals(Assert.java:123)
- * at org.testng.Assert.assertEquals(Assert.java:370)
- * at org.testng.Assert.assertEquals(Assert.java:380)
- * at org.apache.brooklyn.rest.resources.ApplicationResourceTest.testFetchApplicationsAndEntity(ApplicationResourceTest.java:387)
- *
- * When re-enabling, be sure to add it back to dependsOnMethods in testDeleteApplication.
- */
@SuppressWarnings({ "rawtypes", "unchecked" })
- @Test(dependsOnMethods = "testDeployApplication", groups={"Broken"})
+ @Test(dependsOnMethods = "testDeployApplication")
public void testFetchApplicationsAndEntity() {
Collection apps = client().path("/applications/fetch").get(Collection.class);
log.info("Applications fetched are: " + apps);
@@ -378,11 +367,17 @@ public class ApplicationResourceTest extends BrooklynRestResourceTest {
Assert.assertNotNull(groupSummary);
String itemIds = app.get("id") + "," + entitySummary.get("id") + "," + groupSummary.get("id");
- Collection entities = client().path("/applications/fetch").query("items", itemIds)
+ Collection entities = client().path("/applications/fetch")
+ .query("items", itemIds)
+ .query("sensors", "[ service.state.expected, \"host.address\" ]")
.get(Collection.class);
log.info("Applications+Entities fetched are: " + entities);
- Assert.assertEquals(entities.size(), apps.size() + 2);
+ // on jenkins/windows a while ago (early 2016) this would sometimes fail with expected 4 but found 3,
+ // as per BROOKLYN-272 and PR 156; re-enabling now (2017-11) to test sensor query param;
+ // and using assertSize to see which entity/app is missing if it does still fail
+ // (it should definitely be 4, as we got 2 before, and we've asked for 2 more entities)
+ Asserts.assertSize(entities, apps.size() + 2);
Map entityDetails = (Map) Iterables.find(entities, withValueForKey("name", "simple-ent"), null);
Map groupDetails = (Map) Iterables.find(entities, withValueForKey("name", "simple-group"), null);
Assert.assertNotNull(entityDetails);
@@ -410,6 +405,15 @@ public class ApplicationResourceTest extends BrooklynRestResourceTest {
Map entityMemberDetails = (Map) Iterables.find(groupMembers, withValueForKey("name", "simple-ent"), null);
Assert.assertNotNull(entityMemberDetails);
Assert.assertEquals(entityMemberDetails.get("id"), entityDetails.get("id"));
+
+ Map<String,Object> simpleEntSensors = Preconditions.checkNotNull(Map.class.cast(entityDetails.get("sensors")), "sensors");
+ org.apache.brooklyn.api.entity.Entity simpleEnt = Preconditions.checkNotNull(getManagementContext().<org.apache.brooklyn.api.entity.Entity>lookup(
+ EntityPredicates.displayNameEqualTo("simple-ent")));
+ Assert.assertEquals(simpleEntSensors.get("host.address"), simpleEnt.sensors().get(Attributes.ADDRESS));
+ Transition expected = simpleEnt.sensors().get(Attributes.SERVICE_STATE_EXPECTED);
+ Assert.assertEquals(simpleEntSensors.get("service.state.expected"),
+ MutableMap.of("state", expected.getState().name(),
+ "timestampUtc", expected.getTimestamp().getTime()));
}
@Test(dependsOnMethods = "testDeployApplication")
@@ -581,8 +585,7 @@ public class ApplicationResourceTest extends BrooklynRestResourceTest {
}
- // TODO BROOKLYN-272: testFetchApplicationsAndEntity is temporarily disabled; therefore removed from dependsOnMethod list
- @Test(dependsOnMethods = {"testListEffectors", /*"testFetchApplicationsAndEntity",*/ "testTriggerSampleEffector", "testListApplications","testReadEachSensor","testPolicyWhichCapitalizes","testLocatedLocation"})
+ @Test(dependsOnMethods = {"testListEffectors", "testFetchApplicationsAndEntity", "testTriggerSampleEffector", "testListApplications","testReadEachSensor","testPolicyWhichCapitalizes","testLocatedLocation"})
public void testDeleteApplication() throws TimeoutException, InterruptedException {
waitForPageFoundResponse("/applications/simple-app", ApplicationSummary.class);
Collection<Application> apps = getManagementContext().getApplications();