Map<AttributeSensor, Object> allAttributes = entity.getAllAttributes(); for (@SuppressWarnings("rawtypes") Map.Entry<AttributeSensor, Object> entry : allAttributes.entrySet()) { AttributeSensor<?> key = checkNotNull(entry.getKey(), allAttributes);
assertSensorEventually(SENSOR_STRING, null, TIMEOUT_MS); List<String> attrs = Lists.transform(MutableList.copyOf( ((EntityInternal)entity).getAllAttributes().keySet() ), new Function<AttributeSensor,String>() { @Override public String apply(AttributeSensor input) { return input.getName(); } });
@Test(groups="Integration") public void testServiceMirroring() throws Exception { setUpServer(); String catalogItemId = "test-catalog-item:1.0"; String catalogItemIdGA = "test-catalog-item:1.0-GA"; serverApp.sensors().set(TestApplication.MY_ATTRIBUTE, "austria"); serverApp.setCatalogItemId(catalogItemId); String serviceId = serverApp.getId(); Entity mirror = localApp.addChild(EntitySpec.create(BrooklynEntityMirror.class) .configure(BrooklynEntityMirror.POLL_PERIOD, Duration.millis(100)) .configure(BrooklynEntityMirror.MIRRORED_ENTITY_ID, serviceId) .configure(BrooklynEntityMirror.MIRRORED_ENTITY_URL, getBaseUri()+"/v1/applications/"+serviceId+"/entities/"+serviceId) ); EntityAsserts.assertAttributeEqualsEventually(mirror, TestApplication.MY_ATTRIBUTE, "austria"); EntityAsserts.assertAttributeEqualsEventually(mirror, BrooklynEntityMirror.MIRROR_CATALOG_ITEM_ID, catalogItemId); assertTrue(mirror.getAttribute(BrooklynEntityMirror.MIRROR_SUMMARY) != null, "entity summary is null"); log.info("Sensors mirrored are: "+((EntityInternal)mirror).getAllAttributes()); serverApp.sensors().set(TestApplication.MY_ATTRIBUTE, "bermuda"); serverApp.setCatalogItemId(catalogItemIdGA); EntityAsserts.assertAttributeEqualsEventually(mirror, TestApplication.MY_ATTRIBUTE, "bermuda"); EntityAsserts.assertAttributeEqualsEventually(mirror, BrooklynEntityMirror.MIRROR_CATALOG_ITEM_ID, catalogItemIdGA); serverApp.stop(); assertUnmanagedEventually(mirror); }
@Test(groups="Integration") public void testServiceMirroringHttps() throws Exception { LocalManagementContextForTests mgmtHttps = new LocalManagementContextForTests(); mgmtHttps.getBrooklynProperties().put("brooklyn.webconsole.security.https.required", true); mgmtHttps.getBrooklynProperties().put("brooklyn.webconsole.security.users", "admin"); mgmtHttps.getBrooklynProperties().put("brooklyn.webconsole.security.user.admin.password", "P5ssW0rd"); setUpServer(mgmtHttps, false); Assert.assertTrue(getBaseUri().startsWith("https:"), "URL is not https: "+getBaseUri()); // check auth is required HttpTestUtils.assertHttpStatusCodeEquals(getBaseUri(), 401); serverApp.sensors().set(TestApplication.MY_ATTRIBUTE, "austria"); String serviceId = serverApp.getId(); Entity mirror = localApp.addChild(EntitySpec.create(BrooklynEntityMirror.class) .configure(BrooklynEntityMirror.POLL_PERIOD, Duration.millis(100)) .configure(BrooklynEntityMirror.MANAGEMENT_USER, "admin") .configure(BrooklynEntityMirror.MANAGEMENT_PASSWORD, "P5ssW0rd") .configure(BrooklynEntityMirror.MIRRORED_ENTITY_ID, serviceId) .configure(BrooklynEntityMirror.MIRRORED_ENTITY_URL, getBaseUri()+"/v1/applications/"+serviceId+"/entities/"+serviceId) ); EntityAsserts.assertAttributeEqualsEventually(mirror, TestApplication.MY_ATTRIBUTE, "austria"); log.info("Sensors mirrored are: "+((EntityInternal)mirror).getAllAttributes()); serverApp.sensors().set(TestApplication.MY_ATTRIBUTE, "bermuda"); EntityAsserts.assertAttributeEqualsEventually(mirror, TestApplication.MY_ATTRIBUTE, "bermuda"); serverApp.stop(); assertUnmanagedEventually(mirror); }