From a78ef5228e9ad0a7c5aa4c4bd404488aea20d7f8 Mon Sep 17 00:00:00 2001 From: Aled Sage Date: Tue, 6 Dec 2016 18:32:16 +0000 Subject: [PATCH] Remove some deprecation warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (But really this needs serious attention, and deletion of some of the “legacy” pieces - so not going through everything). --- .../networking/cloudstack/HttpUtil.java | 100 ++++-------------- .../legacy/LegacyAbstractSubnetApp.java | 2 +- ...LegacyJcloudsCloudstackSubnetLocation.java | 2 - .../cloudstack/legacy/LegacySubnetTier.java | 10 +- .../legacy/LegacySubnetTierImpl.java | 5 +- .../legacy/VirtualPrivateCloud.java | 1 - .../loadbalancer/CloudStackLoadBalancer.java | 3 +- .../CloudStackLoadBalancerImpl.java | 1 - .../CloudstackPortForwarder.java | 2 +- .../networking/cloudstack/Cleanup.java | 2 +- ...vateNetworkLocationCustomizerLiveTest.java | 2 +- ...CloudstackNew40FeaturesClientLiveTest.java | 2 +- .../CloudStackLoadBalancerLiveTest.java | 10 +- .../brooklyn/networking/AttributeMunger.java | 9 +- .../common/subnet/PortForwarderAsyncImpl.java | 5 +- .../common/subnet/PortForwarderClient.java | 23 ++-- .../subnet/PortForwarderAsyncImpl.java | 3 +- .../networking/AttributeMungerTest.java | 43 +++----- .../networking/PortForwarderAsyncTest.java | 5 +- .../portforwarding/DockerPortForwarder.java | 2 +- .../portforwarding/NoopPortForwarder.java | 2 +- .../portforwarding/PortForwarderIptables.java | 2 +- .../PredefinedPortForwarder.java | 2 +- .../JcloudsPortforwardingSubnetLocation.java | 8 +- ...dsPortforwardingSubnetMachineLocation.java | 1 - .../networking/subnet/SubnetTier.java | 1 + .../networking/subnet/SubnetTierImpl.java | 4 +- .../networking/tunnelling/SshTunnelling.java | 1 + .../example/ExampleForwardingEntity.java | 8 +- .../AbstractDockerPortForwarderTest.java | 8 +- .../AbstractPortForwarderIptablesTest.java | 33 +++--- ...ortForwarderSubnetTierIntegrationTest.java | 4 +- .../PortForwarderSubnetTierLiveTest.java | 1 - ...PortForwarderSubnetTierRebindUnitTest.java | 2 - .../PredefinedPortForwarderYamlTest.java | 15 ++- .../networking/subnet/SubnetTierTest.java | 47 ++++---- .../SshTunnellingIntegrationTest.java | 38 +++---- .../VcloudDirectorSubnetTierLiveTest.java | 6 +- .../networking/vclouddirector/NatService.java | 8 +- .../AbstractNatServiceLiveTest.java | 2 +- .../vclouddirector/NatServiceLiveTest.java | 10 +- 41 files changed, 173 insertions(+), 262 deletions(-) diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/HttpUtil.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/HttpUtil.java index cb8b869a..9507b521 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/HttpUtil.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/HttpUtil.java @@ -20,19 +20,12 @@ import java.security.cert.X509Certificate; import java.util.Map; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.auth.AuthScope; +import org.apache.brooklyn.util.exceptions.Exceptions; +import org.apache.brooklyn.util.http.HttpTool; +import org.apache.brooklyn.util.http.HttpToolResponse; import org.apache.http.auth.Credentials; import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.conn.scheme.Scheme; -import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.conn.ssl.TrustStrategy; -import org.apache.http.entity.ByteArrayEntity; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.util.EntityUtils; import org.bouncycastle.util.io.Streams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,53 +34,35 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; -import org.apache.brooklyn.util.http.HttpToolResponse; -import org.apache.brooklyn.util.exceptions.Exceptions; - /** * HTTP convenience static methods. *

* Uses the Apache {@link HttpClient} for connections. + * + * @deprecated since 0.10.0; instead use {@link HttpTool}. */ +@Deprecated public class HttpUtil { public static final Logger LOG = LoggerFactory.getLogger(HttpUtil.class); public static HttpClient createHttpClient(URI uri, Optional credentials) { - final DefaultHttpClient httpClient = new DefaultHttpClient(); - - // TODO if supplier returns null, we may wish to defer initialization until url available? - if (uri != null && "https".equalsIgnoreCase(uri.getScheme())) { - try { - int port = (uri.getPort() >= 0) ? uri.getPort() : 443; - SSLSocketFactory socketFactory = new SSLSocketFactory( - new TrustAllStrategy(), SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); - Scheme sch = new Scheme("https", port, socketFactory); - httpClient.getConnectionManager().getSchemeRegistry().register(sch); - } catch (Exception e) { - LOG.warn("Error in HTTP Feed of {}, setting trust for uri {}", uri); - throw Exceptions.propagate(e); - } - } - - // Set credentials - if (uri != null && credentials.isPresent()) { - String hostname = uri.getHost(); - int port = uri.getPort(); - httpClient.getCredentialsProvider().setCredentials(new AuthScope(hostname, port), credentials.get()); - } - - return httpClient; + return HttpTool.httpClientBuilder() + .uri(uri) + .credential(credentials) + .build(); } public static HttpToolResponse invoke(org.jclouds.http.HttpRequest request) { - HttpClient client = HttpUtil.createHttpClient(request.getEndpoint(), Optional.absent()); + HttpClient client = HttpTool.httpClientBuilder() + .uri(request.getEndpoint()) + .build(); String method = request.getMethod(); try { if ("GET".equalsIgnoreCase(method)) { - return HttpUtil.httpGet(client, request.getEndpoint(), request.getHeaders()); + return HttpTool.httpGet(client, request.getEndpoint(), request.getHeaders()); } else if ("POST".equalsIgnoreCase(method)) { - return HttpUtil.httpPost(client, request.getEndpoint(), request.getHeaders(), Streams.readAll(request.getPayload().openStream())); + return HttpTool.httpPost(client, request.getEndpoint(), request.getHeaders(), Streams.readAll(request.getPayload().openStream())); } else { // TODO being lazy! throw new UnsupportedOperationException("Unsupported method: "+method+" for "+request); @@ -99,58 +74,23 @@ public static HttpToolResponse invoke(org.jclouds.http.HttpRequest request) { public static HttpToolResponse httpGet(URI uri, Multimap headers) { HttpClient client = HttpUtil.createHttpClient(uri, Optional.absent()); - return HttpUtil.httpGet(client, uri, headers); + return HttpTool.httpGet(client, uri, headers); } public static HttpToolResponse httpGet(HttpClient httpClient, URI uri, Map headers) { - return httpGet(httpClient, uri, Multimaps.forMap(headers)); + return HttpTool.httpGet(httpClient, uri, Multimaps.forMap(headers)); } public static HttpToolResponse httpGet(HttpClient httpClient, URI uri, Multimap headers) { - HttpGet httpGet = new HttpGet(uri); - for (Map.Entry entry : headers.entries()) { - httpGet.addHeader(entry.getKey(), entry.getValue()); - } - - long startTime = System.currentTimeMillis(); - try { - HttpResponse httpResponse = httpClient.execute(httpGet); - try { - return new HttpToolResponse(httpResponse, startTime); - } finally { - EntityUtils.consume(httpResponse.getEntity()); - } - } catch (Exception e) { - throw Exceptions.propagate(e); - } + return HttpTool.httpGet(httpClient, uri, headers); } public static HttpToolResponse httpPost(HttpClient httpClient, URI uri, Map headers, byte[] body) { - return httpPost(httpClient, uri, Multimaps.forMap(headers), body); + return HttpTool.httpPost(httpClient, uri, Multimaps.forMap(headers), body); } public static HttpToolResponse httpPost(HttpClient httpClient, URI uri, Multimap headers, byte[] body) { - HttpPost httpPost = new HttpPost(uri); - for (Map.Entry entry : headers.entries()) { - httpPost.addHeader(entry.getKey(), entry.getValue()); - } - if (body != null) { - HttpEntity httpEntity = new ByteArrayEntity(body); - httpPost.setEntity(httpEntity); - } - - long startTime = System.currentTimeMillis(); - try { - HttpResponse httpResponse = httpClient.execute(httpPost); - - try { - return new HttpToolResponse(httpResponse, startTime); - } finally { - EntityUtils.consume(httpResponse.getEntity()); - } - } catch (Exception e) { - throw Exceptions.propagate(e); - } + return HttpTool.httpPost(httpClient, uri, headers, body); } public static class TrustAllStrategy implements TrustStrategy { diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyAbstractSubnetApp.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyAbstractSubnetApp.java index fe9f4c79..fbc2ff6b 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyAbstractSubnetApp.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyAbstractSubnetApp.java @@ -79,7 +79,7 @@ protected void applyDefaultConfig() { setIfNotAlreadySet(USE_SUBNET, true); // FIXME not safe for persistence if (config().getRaw(LegacyJcloudsCloudstackSubnetLocation.PORT_FORWARDING_MANAGER).isAbsent()) { - PortForwardManager pfm = (PortForwardManager) getManagementContext().getLocationRegistry().resolve("portForwardManager(scope=global)"); + PortForwardManager pfm = (PortForwardManager) getManagementContext().getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); config().set(LegacyJcloudsCloudstackSubnetLocation.PORT_FORWARDING_MANAGER, pfm); } diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyJcloudsCloudstackSubnetLocation.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyJcloudsCloudstackSubnetLocation.java index d7fd5ba8..1deded7a 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyJcloudsCloudstackSubnetLocation.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacyJcloudsCloudstackSubnetLocation.java @@ -55,7 +55,6 @@ import org.apache.brooklyn.util.text.Strings; import org.apache.brooklyn.util.time.Duration; import org.apache.brooklyn.util.time.Time; -import org.apache.commons.lang3.tuple.Pair; import org.jclouds.cloudstack.CloudStackApi; import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions; import org.jclouds.cloudstack.domain.AsyncCreateResponse; @@ -92,7 +91,6 @@ */ public class LegacyJcloudsCloudstackSubnetLocation extends JcloudsLocation { - private static final long serialVersionUID = -6097237757668759966L; private static final Logger LOG = LoggerFactory.getLogger(LegacyJcloudsCloudstackSubnetLocation.class); /* Config on the subnet jclouds location */ diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTier.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTier.java index 7b78e687..1ed21918 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTier.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTier.java @@ -17,8 +17,6 @@ import java.util.Map; -import org.jclouds.cloudstack.domain.FirewallRule; - import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.sensor.AttributeSensor; @@ -29,7 +27,11 @@ import org.apache.brooklyn.core.location.access.BrooklynAccessUtils; import org.apache.brooklyn.core.location.access.PortForwardManager; import org.apache.brooklyn.core.sensor.BasicAttributeSensor; +import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.util.net.Cidr; +import org.jclouds.cloudstack.domain.FirewallRule; + +import com.google.common.reflect.TypeToken; @ImplementedBy(LegacySubnetTierImpl.class) public interface LegacySubnetTier extends Entity, Startable { @@ -64,7 +66,9 @@ public interface LegacySubnetTier extends Entity, Startable { public static final AttributeSensor PRIVATE_HOSTNAME = new BasicAttributeSensor(String.class, "hostname.private", "A private hostname or IP within the subnet (used so don't lose private address when transforming hostname etc on an entity)"); - public static final AttributeSensor> PUBLIC_HOSTNAME_IP_IDS = new BasicAttributeSensor(Map.class, "subnet.publicips.mapping", + @SuppressWarnings("serial") + public static final AttributeSensor> PUBLIC_HOSTNAME_IP_IDS = Sensors.newSensor( + new TypeToken>() {}, "subnet.publicips.mapping", "Provides a mapping from ip ID to actual public IP"); @SuppressWarnings({ "unchecked", "rawtypes" }) diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTierImpl.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTierImpl.java index 1af15b9c..a1da49d7 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTierImpl.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/LegacySubnetTierImpl.java @@ -41,7 +41,6 @@ import org.jclouds.cloudstack.options.CreateNetworkOptions; import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.api.sensor.SensorEvent; @@ -227,7 +226,7 @@ private synchronized PortForwardManager getPortForwardManager() { pfw = getConfig(PORT_FORWARDING_MANAGER); if (pfw==null) { // FIXME not safe for persistence - pfw = (PortForwardManager) getManagementContext().getLocationRegistry().resolve("portForwardManager(scope=global)"); + pfw = (PortForwardManager) getManagementContext().getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); setConfigEvenIfOwned(PORT_FORWARDING_MANAGER, pfw); } sensors().set(SUBNET_SERVICE_PORT_FORWARDS, pfw); @@ -710,7 +709,7 @@ public void onEvent(SensorEvent event) { apply(event.getSource(), event.getValue()); } public void apply(Entity source, Object valueIgnored) { - Location targetVm = Iterables.getOnlyElement(((EntityLocal)serviceToForward).getLocations(), null); + Location targetVm = Iterables.getOnlyElement(serviceToForward.getLocations(), null); if (targetVm==null) { log.warn("Skipping port forward rule for "+serviceToForward+" because it does not have a location"); return; diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/VirtualPrivateCloud.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/VirtualPrivateCloud.java index 9d2ee418..d82a7d7a 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/VirtualPrivateCloud.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/legacy/VirtualPrivateCloud.java @@ -23,7 +23,6 @@ import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.BasicConfigKey; -import org.apache.brooklyn.core.entity.AbstractEntity; import org.apache.brooklyn.core.sensor.BasicAttributeSensor; import org.apache.brooklyn.location.jclouds.JcloudsLocation; import org.apache.brooklyn.util.collections.MutableMap; diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancer.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancer.java index 9bfceba8..f59c9fa7 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancer.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancer.java @@ -56,8 +56,9 @@ public interface CloudStackLoadBalancer extends AbstractNonProvisionedController /** @deprecated in CloudStack; open firewall explicitly */ @Deprecated + @SuppressWarnings("serial") ConfigKey> ALLOWED_SOURCE_CIDRs = ConfigKeys.newConfigKey( - new TypeToken>() { }, "cloudstack.loadbalancer.cidr", "List of allowed source CIDRs (Deprecated in CloudStack)"); + new TypeToken>() {}, "cloudstack.loadbalancer.cidr", "List of allowed source CIDRs (Deprecated in CloudStack)"); /** @deprecated in CloudStack; open firewall explicitly */ @Deprecated diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerImpl.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerImpl.java index 8b6a1e89..d4606754 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerImpl.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerImpl.java @@ -44,7 +44,6 @@ import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.config.ConfigKey.HasConfigKey; import org.apache.brooklyn.core.entity.lifecycle.Lifecycle; -import org.apache.brooklyn.core.feed.ConfigToAttributes; import org.apache.brooklyn.core.location.access.BrooklynAccessUtils; import org.apache.brooklyn.core.location.cloud.names.BasicCloudMachineNamer; import org.apache.brooklyn.entity.proxy.AbstractNonProvisionedControllerImpl; diff --git a/cloudstack/src/main/java/brooklyn/networking/cloudstack/portforwarding/CloudstackPortForwarder.java b/cloudstack/src/main/java/brooklyn/networking/cloudstack/portforwarding/CloudstackPortForwarder.java index c7c50687..dea1b043 100644 --- a/cloudstack/src/main/java/brooklyn/networking/cloudstack/portforwarding/CloudstackPortForwarder.java +++ b/cloudstack/src/main/java/brooklyn/networking/cloudstack/portforwarding/CloudstackPortForwarder.java @@ -87,7 +87,7 @@ public CloudstackPortForwarder(PortForwardManager portForwardManager) { @Override public void setManagementContext(ManagementContext managementContext) { if (portForwardManager == null) { - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); } } diff --git a/cloudstack/src/test/java/brooklyn/networking/cloudstack/Cleanup.java b/cloudstack/src/test/java/brooklyn/networking/cloudstack/Cleanup.java index 0ab7425d..f525729c 100644 --- a/cloudstack/src/test/java/brooklyn/networking/cloudstack/Cleanup.java +++ b/cloudstack/src/test/java/brooklyn/networking/cloudstack/Cleanup.java @@ -48,7 +48,7 @@ public static void main(String[] args) { public Cleanup(String accountName) { managementContext = new LocalManagementContext(); - loc = (JcloudsLocation) managementContext.getLocationRegistry().resolve("citrix-cloudplatform"); + loc = (JcloudsLocation) managementContext.getLocationRegistry().getLocationManaged("citrix-cloudplatform"); networking = new CloudstackNetworking(loc); client = CloudstackNew40FeaturesClient.newInstance(loc); diff --git a/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudStackPrivateNetworkLocationCustomizerLiveTest.java b/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudStackPrivateNetworkLocationCustomizerLiveTest.java index cadc674f..a933a63e 100644 --- a/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudStackPrivateNetworkLocationCustomizerLiveTest.java +++ b/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudStackPrivateNetworkLocationCustomizerLiveTest.java @@ -55,7 +55,7 @@ public class CloudStackPrivateNetworkLocationCustomizerLiveTest { public void setUp() throws Exception { brooklynProperties = BrooklynProperties.Factory.newDefault(); managementContext = new LocalManagementContext(brooklynProperties); - loc = (JcloudsLocation) managementContext.getLocationRegistry().resolve("citrix-cloudplatform"); + loc = (JcloudsLocation) managementContext.getLocationRegistry().getLocationManaged("citrix-cloudplatform"); } @AfterMethod(alwaysRun=true) diff --git a/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudstackNew40FeaturesClientLiveTest.java b/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudstackNew40FeaturesClientLiveTest.java index bfa3f71c..94bd975d 100644 --- a/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudstackNew40FeaturesClientLiveTest.java +++ b/cloudstack/src/test/java/brooklyn/networking/cloudstack/CloudstackNew40FeaturesClientLiveTest.java @@ -39,7 +39,7 @@ public class CloudstackNew40FeaturesClientLiveTest { public void setUp() throws Exception { managementContext = Entities.newManagementContext(); - loc = (JcloudsLocation) managementContext.getLocationRegistry().resolve("bt-fast1"); + loc = (JcloudsLocation) managementContext.getLocationRegistry().getLocationManaged("bt-fast1"); client = CloudstackNew40FeaturesClient.newInstance(loc); } diff --git a/cloudstack/src/test/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerLiveTest.java b/cloudstack/src/test/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerLiveTest.java index 91886cbf..0af1d742 100644 --- a/cloudstack/src/test/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerLiveTest.java +++ b/cloudstack/src/test/java/brooklyn/networking/cloudstack/loadbalancer/CloudStackLoadBalancerLiveTest.java @@ -59,8 +59,8 @@ import org.apache.brooklyn.location.jclouds.JcloudsLocation; import org.apache.brooklyn.location.jclouds.JcloudsSshMachineLocation; import org.apache.brooklyn.test.Asserts; -import org.apache.brooklyn.test.HttpTestUtils; import org.apache.brooklyn.util.core.config.ConfigBag; +import org.apache.brooklyn.util.http.HttpAsserts; import org.apache.brooklyn.util.net.Cidr; import org.apache.brooklyn.util.text.Identifiers; @@ -244,14 +244,14 @@ public void testLoadBalancerWithHttpTargets() throws Exception { // double-check that jboss really is reachable (so don't complain about ELB if it's not ELB's fault!) String directurl = appserver.getAttribute(JBoss7Server.ROOT_URL); - HttpTestUtils.assertHttpStatusCodeEventuallyEquals(directurl, 200); - HttpTestUtils.assertContentContainsText(directurl, "Hello"); + HttpAsserts.assertHttpStatusCodeEventuallyEquals(directurl, 200); + HttpAsserts.assertContentContainsText(directurl, "Hello"); Asserts.succeedsEventually(ImmutableMap.of("timeout", 5*60*1000), new Runnable() { @Override public void run() { String url = "http://"+lb.getAttribute(CloudStackLoadBalancer.HOSTNAME)+":80/"; - HttpTestUtils.assertHttpStatusCodeEventuallyEquals(url, 200); - HttpTestUtils.assertContentContainsText(url, "Hello"); + HttpAsserts.assertHttpStatusCodeEventuallyEquals(url, 200); + HttpAsserts.assertContentContainsText(url, "Hello"); }}); assertEquals(lb.getAttribute(CloudStackLoadBalancer.SERVER_POOL_TARGETS), ImmutableSet.of(machine.getNode().getProviderId())); diff --git a/common/src/main/java/brooklyn/networking/AttributeMunger.java b/common/src/main/java/brooklyn/networking/AttributeMunger.java index e9dced42..8c4428d1 100644 --- a/common/src/main/java/brooklyn/networking/AttributeMunger.java +++ b/common/src/main/java/brooklyn/networking/AttributeMunger.java @@ -26,7 +26,6 @@ import com.google.common.collect.Maps; import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.api.sensor.SensorEvent; import org.apache.brooklyn.api.sensor.SensorEventListener; @@ -37,9 +36,9 @@ public class AttributeMunger { private static final Logger log = LoggerFactory.getLogger(AttributeMunger.class); - private final EntityLocal adjunctEntity; + private final Entity adjunctEntity; - public AttributeMunger(EntityLocal adjunctEntity) { + public AttributeMunger(Entity adjunctEntity) { this.adjunctEntity = adjunctEntity; } @@ -135,11 +134,11 @@ public static void setAttributeIfChanged(EntityAndAttribute entityAndAttr public static void setAttributeIfChanged(Entity entity, AttributeSensor attribute, T val) { Object oldval = entity.getAttribute(attribute); if (!Objects.equal(oldval, val)) { - ((EntityLocal)entity).setAttribute(attribute, val); + entity.sensors().set(attribute, val); } } private void subscribe(Entity target, AttributeSensor sensor, SensorEventListener listener) { - adjunctEntity.subscribe(target, sensor, listener); + adjunctEntity.subscriptions().subscribe(target, sensor, listener); } } diff --git a/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderAsyncImpl.java b/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderAsyncImpl.java index add282d8..bc9a1528 100644 --- a/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderAsyncImpl.java +++ b/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderAsyncImpl.java @@ -21,7 +21,6 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.location.MachineLocation; import org.apache.brooklyn.api.location.PortRange; import org.apache.brooklyn.api.mgmt.Task; @@ -58,10 +57,10 @@ public class PortForwarderAsyncImpl implements PortForwarderAsync { private static final Logger log = LoggerFactory.getLogger(PortForwarderAsyncImpl.class); - private final EntityLocal adjunctEntity; + private final Entity adjunctEntity; private final PortForwarder portForwarder; - public PortForwarderAsyncImpl(EntityLocal adjunctEntity, PortForwarder portForwarder, PortForwardManager portForwardManager) { + public PortForwarderAsyncImpl(Entity adjunctEntity, PortForwarder portForwarder, PortForwardManager portForwardManager) { this.adjunctEntity = adjunctEntity; this.portForwarder = portForwarder; } diff --git a/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderClient.java b/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderClient.java index bd5dff9a..d988d870 100644 --- a/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderClient.java +++ b/common/src/main/java/brooklyn/networking/common/subnet/PortForwarderClient.java @@ -30,7 +30,6 @@ import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.location.access.PortForwardManager; -import org.apache.brooklyn.core.location.access.PortForwardManagerClient; import org.apache.brooklyn.util.exceptions.Exceptions; import org.apache.brooklyn.util.net.Cidr; import org.apache.brooklyn.util.net.HasNetworkAddresses; @@ -38,8 +37,6 @@ /** * Delegating instance of {@link PortForwarder}, for persistence-safety. - *

- * @see brooklyn.location.access.PortForwardManagerClient */ @Beta public class PortForwarderClient implements PortForwarder { @@ -51,12 +48,18 @@ protected PortForwarderClient(Supplier supplier) { this.delegateSupplier = supplier; } - /** creates an instance, cf {@link PortForwardManagerClient#fromSupplier(Supplier)} */ + /** + * Creates an instance, which will delegate to the given instance (caching the delegate after + * the first call). + */ public static PortForwarder fromSupplier(Supplier supplier) { return new PortForwarderClient(supplier); } - /** creates an instance, cf {@link PortForwardManagerClient#fromMethodOnEntity(Entity, String)} */ + /** + * Creates an instance, getting the delegate by calling the given method on the entity + * (lazily, caching the delegate after the first call). + */ public static PortForwarder fromMethodOnEntity(final Entity entity, final String getterMethodOnEntity) { Preconditions.checkNotNull(entity); Preconditions.checkNotNull(getterMethodOnEntity); @@ -77,7 +80,10 @@ public PortForwarder get() { }); } - /** creates an instance, cf {@link PortForwardManagerClient#fromConfigOnEntity(Entity, ConfigKey)} */ + /** + * Creates an instance, getting the delegate by retrieving the config value from the + * entity (lazily). + */ public static PortForwarder fromConfigOnEntity(final Entity entity, final ConfigKey configOnEntity) { Preconditions.checkNotNull(entity); Preconditions.checkNotNull(configOnEntity); @@ -92,7 +98,10 @@ public PortForwarder get() { }); } - /** creates an instance, cf {@link PortForwardManagerClient#fromAttributeOnEntity(Entity, AttributeSensor)} */ + /** + * Creates an instance, getting the delegate by retrieving the sensor value from the + * entity (lazily). + */ public static PortForwarder fromAttributeOnEntity(final Entity entity, final AttributeSensor attributeOnEntity) { Preconditions.checkNotNull(entity); Preconditions.checkNotNull(attributeOnEntity); diff --git a/common/src/main/java/brooklyn/networking/subnet/PortForwarderAsyncImpl.java b/common/src/main/java/brooklyn/networking/subnet/PortForwarderAsyncImpl.java index c0af159b..367fa4e4 100644 --- a/common/src/main/java/brooklyn/networking/subnet/PortForwarderAsyncImpl.java +++ b/common/src/main/java/brooklyn/networking/subnet/PortForwarderAsyncImpl.java @@ -19,7 +19,6 @@ import com.google.common.net.HostAndPort; import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.location.MachineLocation; import org.apache.brooklyn.api.location.PortRange; import org.apache.brooklyn.core.entity.EntityAndAttribute; @@ -43,7 +42,7 @@ public class PortForwarderAsyncImpl extends brooklyn.networking.common.subnet.Po private final PortForwarder portForwarder; - public PortForwarderAsyncImpl(EntityLocal adjunctEntity, + public PortForwarderAsyncImpl(Entity adjunctEntity, PortForwarder portForwarder, PortForwardManager portForwardManager) { super(adjunctEntity, portForwarder, portForwardManager); this.portForwarder = portForwarder; diff --git a/common/src/test/java/brooklyn/networking/AttributeMungerTest.java b/common/src/test/java/brooklyn/networking/AttributeMungerTest.java index 6f353e70..59431736 100644 --- a/common/src/test/java/brooklyn/networking/AttributeMungerTest.java +++ b/common/src/test/java/brooklyn/networking/AttributeMungerTest.java @@ -19,42 +19,38 @@ import java.util.List; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; -import com.google.common.base.Suppliers; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; - import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.api.location.LocationSpec; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.api.sensor.SensorEvent; import org.apache.brooklyn.api.sensor.SensorEventListener; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.entity.EntityAndAttribute; -import org.apache.brooklyn.core.entity.factory.ApplicationBuilder; +import org.apache.brooklyn.core.entity.EntityAsserts; import org.apache.brooklyn.core.location.SimulatedLocation; import org.apache.brooklyn.core.sensor.BasicAttributeSensor; +import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport; import org.apache.brooklyn.core.test.entity.TestApplication; import org.apache.brooklyn.test.Asserts; -import org.apache.brooklyn.test.EntityTestUtils; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; -public class AttributeMungerTest { +import com.google.common.base.Optional; +import com.google.common.base.Predicates; +import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; + +public class AttributeMungerTest extends BrooklynAppUnitTestSupport { - private TestApplication app; private List events; private Location loc; @BeforeMethod(alwaysRun=true) + @Override public void setUp() throws Exception { + super.setUp(); events = Lists.newCopyOnWriteArrayList(); - app = ApplicationBuilder.newManagedApp(TestApplication.class); - loc = app.getManagementContext().getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class)); + loc = mgmt.getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class)); app.start(ImmutableList.of(loc)); app.subscriptions().subscribe(app, TestApplication.MY_ATTRIBUTE, new SensorEventListener() { @@ -63,11 +59,6 @@ public void setUp() throws Exception { }}); } - @AfterMethod(alwaysRun=true) - public void tearDown() throws Exception { - if (app != null) Entities.destroyAll(app.getManagementContext()); - } - @Test(groups="Integration") // has a sleep for equalsContinually public void testSetAttributeIfChanged() throws Exception { AttributeMunger.setAttributeIfChanged(new EntityAndAttribute(app, TestApplication.MY_ATTRIBUTE), "val1"); @@ -104,14 +95,14 @@ public void testTransformSensorStringReplacingWithPublicAddressAndPort() throws app.sensors().set(ENDPOINT, "PREFIX://myprivatehostname:1234/POSTFIX"); app.sensors().set(PUBLIC_ENDPOINT, "mypublichostname:5678"); - EntityTestUtils.assertAttributeEqualsEventually(app, ENDPOINT, "PREFIX://mypublichostname:5678/POSTFIX"); + EntityAsserts.assertAttributeEqualsEventually(app, ENDPOINT, "PREFIX://mypublichostname:5678/POSTFIX"); } private void assertEqualsEventually(T actual, T expected) { - Asserts.eventually(Suppliers.ofInstance(actual), (Predicate)Predicates.equalTo(expected)); + Asserts.eventually(Suppliers.ofInstance(actual), Predicates.equalTo(expected)); } private void assertEqualsContinually(T actual, T expected) { - Asserts.continually(Suppliers.ofInstance(actual), (Predicate)Predicates.equalTo(expected)); + Asserts.continually(Suppliers.ofInstance(actual), Predicates.equalTo(expected)); } } diff --git a/common/src/test/java/brooklyn/networking/PortForwarderAsyncTest.java b/common/src/test/java/brooklyn/networking/PortForwarderAsyncTest.java index b7899f97..407bc941 100644 --- a/common/src/test/java/brooklyn/networking/PortForwarderAsyncTest.java +++ b/common/src/test/java/brooklyn/networking/PortForwarderAsyncTest.java @@ -33,7 +33,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.api.location.LocationSpec; @@ -91,7 +90,7 @@ public class PortForwarderAsyncTest extends BrooklynAppLiveTestSupport { @Override public void setUp() throws Exception { super.setUp(); - loc = mgmt.getLocationRegistry().resolve("localhost"); + loc = app.newLocalhostProvisioningLocation(); pseudoMachine = mgmt.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) .configure("jcloudsParent", loc) .configure("address", "1.1.1.1") @@ -123,7 +122,7 @@ public HostAndPort answer(final InvocationOnMock invocationOnMock) throws Throwa }); when(pf.getPortForwardManager()).thenAnswer(Answers.RETURNS_MOCKS.get()); - pfa = new PortForwarderAsyncImpl((EntityLocal) testEntity, pf, null); + pfa = new PortForwarderAsyncImpl(testEntity, pf, null); } @Test diff --git a/portforwarding/src/main/java/brooklyn/networking/portforwarding/DockerPortForwarder.java b/portforwarding/src/main/java/brooklyn/networking/portforwarding/DockerPortForwarder.java index 2b8e38ee..3780e6c2 100644 --- a/portforwarding/src/main/java/brooklyn/networking/portforwarding/DockerPortForwarder.java +++ b/portforwarding/src/main/java/brooklyn/networking/portforwarding/DockerPortForwarder.java @@ -77,7 +77,7 @@ public DockerPortForwarder(PortForwardManager portForwardManager) { @Override public void setManagementContext(ManagementContext managementContext) { if (portForwardManager == null) { - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); } } diff --git a/portforwarding/src/main/java/brooklyn/networking/portforwarding/NoopPortForwarder.java b/portforwarding/src/main/java/brooklyn/networking/portforwarding/NoopPortForwarder.java index f9ceefed..f808d369 100644 --- a/portforwarding/src/main/java/brooklyn/networking/portforwarding/NoopPortForwarder.java +++ b/portforwarding/src/main/java/brooklyn/networking/portforwarding/NoopPortForwarder.java @@ -59,7 +59,7 @@ public NoopPortForwarder(PortForwardManager portForwardManager) { @Override public void setManagementContext(ManagementContext managementContext) { if (portForwardManager == null) { - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); } } diff --git a/portforwarding/src/main/java/brooklyn/networking/portforwarding/PortForwarderIptables.java b/portforwarding/src/main/java/brooklyn/networking/portforwarding/PortForwarderIptables.java index 982d12b6..8538b8aa 100644 --- a/portforwarding/src/main/java/brooklyn/networking/portforwarding/PortForwarderIptables.java +++ b/portforwarding/src/main/java/brooklyn/networking/portforwarding/PortForwarderIptables.java @@ -89,7 +89,7 @@ public PortForwarderIptables(PortForwardManager portForwardManager, String forwa @Override public void setManagementContext(ManagementContext managementContext) { if (portForwardManager == null) { - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); } } diff --git a/portforwarding/src/main/java/brooklyn/networking/portforwarding/PredefinedPortForwarder.java b/portforwarding/src/main/java/brooklyn/networking/portforwarding/PredefinedPortForwarder.java index ba271a54..cec25443 100644 --- a/portforwarding/src/main/java/brooklyn/networking/portforwarding/PredefinedPortForwarder.java +++ b/portforwarding/src/main/java/brooklyn/networking/portforwarding/PredefinedPortForwarder.java @@ -50,7 +50,7 @@ public PredefinedPortForwarder(PortForwardManager portForwardManager) { @Override public void setManagementContext(ManagementContext managementContext) { if (portForwardManager == null) { - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); } } diff --git a/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetLocation.java b/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetLocation.java index 60dc89c6..9a727d2c 100644 --- a/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetLocation.java +++ b/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetLocation.java @@ -26,7 +26,7 @@ import org.apache.brooklyn.api.location.NoMachinesAvailableException; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.entity.Entities; +import org.apache.brooklyn.core.config.Sanitizer; import org.apache.brooklyn.core.location.access.BrooklynAccessUtils; import org.apache.brooklyn.core.location.access.PortForwardManager; import org.apache.brooklyn.location.jclouds.JcloudsLocation; @@ -59,8 +59,6 @@ /** requires zone id and tier id to be specified; shared_network_id optional (but needed if you want to connect!) */ public class JcloudsPortforwardingSubnetLocation extends JcloudsLocation { - private static final long serialVersionUID = 2447151199192553199L; - private static final Logger log = LoggerFactory.getLogger(JcloudsPortforwardingSubnetLocation.class); /** config on the subnet jclouds location */ @@ -165,7 +163,7 @@ protected JcloudsSshMachineLocation createJcloudsSshMachineLocation(ComputeServi LOG.debug("Could not resolve reported address '"+address+"' for "+managementHostAndPort+" ("+setup.getDescription()+"/"+node+"), requesting reachable socket address"); if (computeService==null) throw Exceptions.propagate(e); // this has sometimes already been done in waitForReachable (unless skipped) but easy enough to do again - address = JcloudsUtil.getFirstReachableAddress(computeService.getContext(), node); + address = JcloudsUtil.getFirstReachableAddress(node, Duration.FIVE_MINUTES); } } @@ -174,7 +172,7 @@ protected JcloudsSshMachineLocation createJcloudsSshMachineLocation(ComputeServi new Object[] { userCredentials.getUser(), address, - Entities.sanitize(sshConfig), + Sanitizer.sanitize(sshConfig), managementHostAndPort, setup.getDescription(), node diff --git a/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetMachineLocation.java b/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetMachineLocation.java index 11bda922..ad168638 100644 --- a/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetMachineLocation.java +++ b/portforwarding/src/main/java/brooklyn/networking/portforwarding/subnet/JcloudsPortforwardingSubnetMachineLocation.java @@ -31,7 +31,6 @@ import brooklyn.networking.common.subnet.PortForwarder; public class JcloudsPortforwardingSubnetMachineLocation extends AbstractJcloudsSubnetSshMachineLocation { - private static final long serialVersionUID = 252415164250662535L; public static final ConfigKey PORT_FORWARDER = ConfigKeys.newConfigKey(PortForwarder.class, "portForwarder"); diff --git a/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTier.java b/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTier.java index af29d5af..14ff6ff6 100644 --- a/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTier.java +++ b/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTier.java @@ -48,6 +48,7 @@ public interface SubnetTier extends Entity, Startable { // TODO Only works for integer ports currently; should also make it work for URLs and HostAndPort (like in clocker) // Config should be set on entities within subnet tier, rather than on the subnet tier itself + @SuppressWarnings("serial") public static final ConfigKey>> PUBLICLY_FORWARDED_PORTS = ConfigKeys.newConfigKey( new TypeToken>>() {}, "subnet.publiclyForwardedPorts", diff --git a/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTierImpl.java b/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTierImpl.java index d29860be..6aebe9f0 100644 --- a/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTierImpl.java +++ b/portforwarding/src/main/java/brooklyn/networking/subnet/SubnetTierImpl.java @@ -102,7 +102,7 @@ public void init() { if (pfmFromConf == null) { if (pfmFromPf == null) { log.trace("Subnet tier "+this+" has no PortForwardManager supplied; retrieving portForwardManager(scope=global)"); - pfmLive = (PortForwardManager) getManagementContext().getLocationRegistry().resolve("portForwardManager(scope=global)"); + pfmLive = (PortForwardManager) getManagementContext().getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); } else { log.trace("Subnet tier "+this+" using "+pfmFromPf+", retrieved from PortForwarder "+pf); pfmLive = pfmFromPf; @@ -147,7 +147,7 @@ protected void initEnrichers() { } private void rescanDescendants() { - for (Entity descendant : Entities.descendants(this)) { + for (Entity descendant : Entities.descendantsAndSelf(this)) { if (!portMappedEntities.contains(descendant)) { onEntityAdded(descendant); } diff --git a/portforwarding/src/main/java/brooklyn/networking/tunnelling/SshTunnelling.java b/portforwarding/src/main/java/brooklyn/networking/tunnelling/SshTunnelling.java index 6ba55a59..b6f5c2c4 100644 --- a/portforwarding/src/main/java/brooklyn/networking/tunnelling/SshTunnelling.java +++ b/portforwarding/src/main/java/brooklyn/networking/tunnelling/SshTunnelling.java @@ -30,6 +30,7 @@ public class SshTunnelling { + @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(SshTunnelling.class); public static String generateRsaKey(SshMachineLocation machine) { diff --git a/portforwarding/src/test/java/brooklyn/example/ExampleForwardingEntity.java b/portforwarding/src/test/java/brooklyn/example/ExampleForwardingEntity.java index ab7cda82..3260b8a5 100644 --- a/portforwarding/src/test/java/brooklyn/example/ExampleForwardingEntity.java +++ b/portforwarding/src/test/java/brooklyn/example/ExampleForwardingEntity.java @@ -23,14 +23,18 @@ import org.apache.brooklyn.core.sensor.BasicAttributeSensor; import org.apache.brooklyn.entity.java.VanillaJavaApp; +import com.google.common.reflect.TypeToken; + @ImplementedBy(ExampleForwardingEntityImpl.class) public interface ExampleForwardingEntity extends VanillaJavaApp { ConfigKey ORIGIN_ENTITY_FORWARDED = ConfigKeys.newConfigKey( Entity.class, "sshtunnel.origin.entity"); - ConfigKey> ORIGIN_PORT_ATTRIBUTE_FORWARDED = (ConfigKey) ConfigKeys.newConfigKey( - AttributeSensor.class, "sshtunnel.origin.portAttribute"); + @SuppressWarnings("serial") + ConfigKey> ORIGIN_PORT_ATTRIBUTE_FORWARDED = ConfigKeys.newConfigKey( + new TypeToken>() {}, + "sshtunnel.origin.portAttribute"); // Note this is not set on this entity; it is set on the origin entity! AttributeSensor PUBLIC_KEY_DATA = new BasicAttributeSensor(String.class, diff --git a/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractDockerPortForwarderTest.java b/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractDockerPortForwarderTest.java index 88af5e90..d6c7c838 100644 --- a/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractDockerPortForwarderTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractDockerPortForwarderTest.java @@ -33,10 +33,10 @@ import com.google.common.collect.Iterables; import com.google.common.net.HostAndPort; +import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.location.LocationSpec; import org.apache.brooklyn.api.mgmt.ManagementContext; import org.apache.brooklyn.core.entity.Entities; -import org.apache.brooklyn.core.entity.factory.ApplicationBuilder; import org.apache.brooklyn.core.location.access.PortForwardManager; import org.apache.brooklyn.core.test.entity.TestApplication; import org.apache.brooklyn.location.jclouds.JcloudsLocation; @@ -76,10 +76,10 @@ public abstract class AbstractDockerPortForwarderTest { @BeforeClass(alwaysRun = true) public void setUpClass() throws Exception { managementContext = Entities.newManagementContext(); - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); // Note: using different username on each to ensure no mix up there! - loc = (JcloudsLocation) managementContext.getLocationRegistry().resolve(LOC_SPEC, MutableMap.builder() + loc = (JcloudsLocation) managementContext.getLocationRegistry().getLocationManaged(LOC_SPEC, MutableMap.builder() .put("identity", "notused") .put("credential", "notused") .build()); @@ -113,7 +113,7 @@ public void tearDownClass() throws Exception { @BeforeMethod(alwaysRun=true) public void setUp() throws Exception { - app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext); + app = managementContext.getEntityManager().createEntity(EntitySpec.create(TestApplication.class)); portForwarder = new DockerPortForwarder(portForwardManager); portForwarder.init(DOCKER_HOST_IP, DOCKER_HOST_PORT); } diff --git a/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractPortForwarderIptablesTest.java b/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractPortForwarderIptablesTest.java index 61c637d0..e9c6178c 100644 --- a/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractPortForwarderIptablesTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/portforwarding/AbstractPortForwarderIptablesTest.java @@ -23,22 +23,10 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.annotations.AfterClass; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Iterables; -import com.google.common.net.HostAndPort; - +import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.location.LocationSpec; import org.apache.brooklyn.api.mgmt.ManagementContext; import org.apache.brooklyn.core.entity.Entities; -import org.apache.brooklyn.core.entity.factory.ApplicationBuilder; import org.apache.brooklyn.core.location.access.PortForwardManager; import org.apache.brooklyn.core.test.entity.TestApplication; import org.apache.brooklyn.location.jclouds.JcloudsLocation; @@ -48,6 +36,17 @@ import org.apache.brooklyn.util.net.Networking; import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.net.HostAndPort; // TODO Tests currently written to be fast: they assume existing VMs are configured. // Could re-write to create the VMs (and terminate them obviously) for each run. @@ -94,7 +93,7 @@ protected ManagementContext newManagementContext() { @BeforeClass(alwaysRun=true) public void setUpClass() throws Exception { managementContext = newManagementContext(); - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); portForwarder = new PortForwarderIptables(portForwardManager, forwarderPublicIp, forwarderMachine); if (!requiresMachines()) { @@ -116,7 +115,7 @@ public void setUpClass() throws Exception { } else { // Note: using different username on each to ensure no mix up there! - loc = (JcloudsLocation) managementContext.getLocationRegistry().resolve(locSpec); + loc = (JcloudsLocation) managementContext.getLocationRegistry().getLocationManaged(locSpec); // Start the VMs in parallel executor = Executors.newCachedThreadPool(); @@ -151,7 +150,7 @@ public SshMachineLocation call() throws Exception { forwarderMachine.execScript("install-policycoreutils", ImmutableList.of(BashCommands.installPackage(ImmutableMap.of("yum", "policycoreutils"), null))); forwarderMachine.execScript("enable-ip-forward", ImmutableList.of(sudo("sysctl -w net.ipv4.ip_forward=1"))); - targetPrivateIp = Iterables.get(((JcloudsSshMachineLocation)targetPublicMachine).getNode().getPrivateAddresses(), 0); + targetPrivateIp = Iterables.get(((JcloudsSshMachineLocation)targetPublicMachine).getPrivateAddresses(), 0); targetPrivateMachine = managementContext.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) .configure("address", Networking.getInetAddressWithFixedName(targetPrivateIp)) @@ -179,7 +178,7 @@ public void tearDownClass() throws Exception { @BeforeMethod(alwaysRun=true) public void setUp() throws Exception { - app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext); + app = managementContext.getEntityManager().createEntity(EntitySpec.create(TestApplication.class)); } @AfterMethod(alwaysRun=true) diff --git a/portforwarding/src/test/java/brooklyn/networking/portforwarding/NoopPortForwarderSubnetTierIntegrationTest.java b/portforwarding/src/test/java/brooklyn/networking/portforwarding/NoopPortForwarderSubnetTierIntegrationTest.java index 686cbbf4..ca3eaa2a 100644 --- a/portforwarding/src/test/java/brooklyn/networking/portforwarding/NoopPortForwarderSubnetTierIntegrationTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/portforwarding/NoopPortForwarderSubnetTierIntegrationTest.java @@ -68,11 +68,11 @@ public class NoopPortForwarderSubnetTierIntegrationTest { public void setUp() throws Exception { app = TestApplication.Factory.newManagedInstanceForTests(); managementContext = app.getManagementContext(); - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); portForwarder = new NoopPortForwarder(portForwardManager); // Note: using different username on each to ensure no mix up there! - loc = (LocalhostMachineProvisioningLocation) managementContext.getLocationRegistry().resolve(LOC_SPEC); + loc = (LocalhostMachineProvisioningLocation) managementContext.getLocationRegistry().getLocationManaged(LOC_SPEC); targetMachine = loc.obtain(); } diff --git a/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierLiveTest.java b/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierLiveTest.java index d505234b..561f323a 100644 --- a/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierLiveTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierLiveTest.java @@ -29,7 +29,6 @@ import com.google.common.collect.Iterables; import com.google.common.net.HostAndPort; -import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.core.entity.EntityAndAttribute; diff --git a/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierRebindUnitTest.java b/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierRebindUnitTest.java index c8fbad0f..ace9bb41 100644 --- a/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierRebindUnitTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/portforwarding/PortForwarderSubnetTierRebindUnitTest.java @@ -31,7 +31,6 @@ import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.mgmt.ManagementContext; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.location.access.PortForwardManager; import org.apache.brooklyn.core.location.access.PortMapping; import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext; @@ -72,7 +71,6 @@ public void testRebindSubnetTier() throws Exception { .configure(SubnetTier.SUBNET_CIDR, Cidr.UNIVERSAL)); TestEntity origTestChild = origSubnetTier.addChild(EntitySpec.create(TestEntity.class)); - Entities.startManagement(origTestChild); // don't start it, so the port-forwarder isn't actually used // (this is a brittle hack but it should work) diff --git a/portforwarding/src/test/java/brooklyn/networking/portforwarding/PredefinedPortForwarderYamlTest.java b/portforwarding/src/test/java/brooklyn/networking/portforwarding/PredefinedPortForwarderYamlTest.java index c4a6a6c4..f98d1e49 100644 --- a/portforwarding/src/test/java/brooklyn/networking/portforwarding/PredefinedPortForwarderYamlTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/portforwarding/PredefinedPortForwarderYamlTest.java @@ -2,7 +2,6 @@ import static org.testng.Assert.assertEquals; -import java.io.StringReader; import java.util.Map; import org.apache.brooklyn.core.location.Machines; @@ -20,10 +19,10 @@ import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.entity.Attributes; import org.apache.brooklyn.core.entity.Entities; +import org.apache.brooklyn.core.entity.EntityAsserts; import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess; import org.apache.brooklyn.location.ssh.SshMachineLocation; -import org.apache.brooklyn.test.EntityTestUtils; import org.apache.brooklyn.util.net.UserAndHostAndPort; public class PredefinedPortForwarderYamlTest extends AbstractYamlTest { @@ -58,17 +57,17 @@ public void testByonPortMapping() throws Exception { " subnet.publiclyForwardedPorts: ", " - $brooklyn:sensor(\"http.port\")"); - Entity app = createStartWaitAndLogApplication(new StringReader(yaml)); - EmptySoftwareProcess entity = (EmptySoftwareProcess) Iterables.find(Entities.descendants(app), Predicates.instanceOf(EmptySoftwareProcess.class)); + Entity app = createStartWaitAndLogApplication(yaml); + EmptySoftwareProcess entity = (EmptySoftwareProcess) Iterables.find(Entities.descendantsAndSelf(app), Predicates.instanceOf(EmptySoftwareProcess.class)); SshMachineLocation machine = Machines.findUniqueMachineLocation(entity.getLocations(), SshMachineLocation.class).get(); assertMachine(machine, UserAndHostAndPort.fromParts("myuser", "83.222.229.1", 12001), ImmutableMap.of( SshMachineLocation.PASSWORD.getName(), "mypassword")); - EntityTestUtils.assertAttributeEquals(entity, Attributes.SUBNET_ADDRESS, "10.0.0.1"); - EntityTestUtils.assertAttributeEquals(entity, Attributes.ADDRESS, "83.222.229.1"); - EntityTestUtils.assertAttributeEquals(entity, Attributes.HTTP_PORT, 8080); - EntityTestUtils.assertAttributeEqualsEventually(entity, Sensors.newStringSensor("mapped.http.port"), "83.222.229.1:12002"); + EntityAsserts.assertAttributeEquals(entity, Attributes.SUBNET_ADDRESS, "10.0.0.1"); + EntityAsserts.assertAttributeEquals(entity, Attributes.ADDRESS, "83.222.229.1"); + EntityAsserts.assertAttributeEquals(entity, Attributes.HTTP_PORT, 8080); + EntityAsserts.assertAttributeEqualsEventually(entity, Sensors.newStringSensor("mapped.http.port"), "83.222.229.1:12002"); } private void assertMachine(SshMachineLocation machine, UserAndHostAndPort conn, Map config) { diff --git a/portforwarding/src/test/java/brooklyn/networking/subnet/SubnetTierTest.java b/portforwarding/src/test/java/brooklyn/networking/subnet/SubnetTierTest.java index 60ed2eb9..06c63ec0 100644 --- a/portforwarding/src/test/java/brooklyn/networking/subnet/SubnetTierTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/subnet/SubnetTierTest.java @@ -24,7 +24,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -36,7 +35,6 @@ import com.google.common.net.HostAndPort; import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.api.location.LocationSpec; @@ -46,16 +44,15 @@ import org.apache.brooklyn.api.sensor.SensorEvent; import org.apache.brooklyn.api.sensor.SensorEventListener; import org.apache.brooklyn.core.entity.Attributes; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.entity.EntityAndAttribute; +import org.apache.brooklyn.core.entity.EntityAsserts; import org.apache.brooklyn.core.location.access.PortForwardManager; import org.apache.brooklyn.core.sensor.BasicAttributeSensor; import org.apache.brooklyn.core.sensor.Sensors; -import org.apache.brooklyn.core.test.entity.TestApplication; +import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport; import org.apache.brooklyn.core.test.entity.TestEntity; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.test.Asserts; -import org.apache.brooklyn.test.EntityTestUtils; import org.apache.brooklyn.util.net.Cidr; import org.apache.brooklyn.util.net.HasNetworkAddresses; import org.apache.brooklyn.util.net.Networking; @@ -65,25 +62,23 @@ import brooklyn.networking.common.subnet.PortForwarder; import brooklyn.networking.portforwarding.NoopPortForwarder; -public class SubnetTierTest { +public class SubnetTierTest extends BrooklynAppUnitTestSupport { private static final Logger log = LoggerFactory.getLogger(SubnetTierTest.class); private Map portMapping; private String machineAddress = "1.2.3.4"; - private TestApplication app; private SubnetTier subnetTier; private TestEntity entity; - private ManagementContext managementContext; private SshMachineLocation simulatedMachine; private PortForwardManager portForwardManager; @BeforeMethod(alwaysRun=true) + @Override public void setUp() throws Exception { - app = TestApplication.Factory.newManagedInstanceForTests(); - managementContext = app.getManagementContext(); - portForwardManager = (PortForwardManager) managementContext.getLocationRegistry().resolve("portForwardManager(scope=global)"); + super.setUp(); + portForwardManager = (PortForwardManager) mgmt.getLocationRegistry().getLocationManaged("portForwardManager(scope=global)"); portMapping = Maps.newLinkedHashMap(); PortForwarder portForwarder = new StubPortForwarder(portMapping); @@ -92,19 +87,13 @@ public void setUp() throws Exception { .configure(SubnetTier.PORT_FORWARDER, portForwarder) .configure(SubnetTier.PORT_FORWARDING_MANAGER, portForwardManager)); entity = subnetTier.addChild(EntitySpec.create(TestEntity.class)); - Entities.manage(entity); - simulatedMachine = managementContext.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) + simulatedMachine = mgmt.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) .configure("address", Networking.getInetAddressWithFixedName(machineAddress)) .configure("port", 1234) .configure("user", "myuser")); } - @AfterMethod(alwaysRun=true) - public void tearDown() throws Exception { - if (app != null) Entities.destroyAll(app.getManagementContext()); - } - @Test public void testTransformSensorStringReplacingWithPublicAddressAndPort() throws Exception { final AttributeSensor TARGET_PORT = new BasicAttributeSensor(Integer.class, "target.port"); @@ -123,7 +112,7 @@ public void testTransformSensorStringReplacingWithPublicAddressAndPort() throws log.info(app.getAttribute(ENDPOINT)); - EntityTestUtils.assertAttributeEqualsEventually(app, ENDPOINT, "PREFIX://mypublichostname:5678/POSTFIX"); + EntityAsserts.assertAttributeEqualsEventually(app, ENDPOINT, "PREFIX://mypublichostname:5678/POSTFIX"); } @Test @@ -143,7 +132,7 @@ public void testHostAndPortTransformingEnricher() throws Exception { entity.addLocations(ImmutableList.of(simulatedMachine)); entity.sensors().set(TARGET_PORT, 80); - EntityTestUtils.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, publicAddress+":"+40080); } @Test @@ -170,7 +159,7 @@ public void testHostAndPortTransformingEnricherWithDelayedPortMapping() throws E portMapping.put(HostAndPort.fromParts(machineAddress, 80), HostAndPort.fromParts(publicAddress, 40080)); portForwardManager.associate(publicIpId, HostAndPort.fromParts(publicAddress, 40080), simulatedMachine, 80); - EntityTestUtils.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, publicAddress+":"+40080); } @Test @@ -188,7 +177,7 @@ public void testUriTransformingEnricher() throws Exception { entity.addLocations(ImmutableList.of(simulatedMachine)); entity.sensors().set(ENDPOINT, "http://"+machineAddress+":80"); - EntityTestUtils.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); } @Test @@ -206,7 +195,7 @@ public void testUriTransformingEnricherWithSourceSetToHostAndPort() throws Excep entity.addLocations(ImmutableList.of(simulatedMachine)); entity.sensors().set(ENDPOINT, machineAddress+":80"); - EntityTestUtils.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, publicAddress+":"+40080); } /** @@ -239,7 +228,7 @@ public void testUriTransformingEnricherWithDelayedPortMapping() throws Exception portMapping.put(HostAndPort.fromParts(machineAddress, 80), HostAndPort.fromParts(publicAddress, 40080)); portForwardManager.associate(publicIpId, HostAndPort.fromParts(publicAddress, 40080), simulatedMachine, 80); - EntityTestUtils.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(entity, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); } @Test @@ -256,7 +245,7 @@ public void testTransformUri() throws Exception { entity.addLocations(ImmutableList.of(simulatedMachine)); entity.sensors().set(ENDPOINT, "http://"+machineAddress+":80"); - EntityTestUtils.assertAttributeEqualsEventually(entity, ENDPOINT, "http://"+publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(entity, ENDPOINT, "http://"+publicAddress+":"+40080); } @Test @@ -274,7 +263,7 @@ public void testTransformUriPublishingElsewhere() throws Exception { entity.addLocations(ImmutableList.of(simulatedMachine)); entity.sensors().set(ENDPOINT, "http://"+machineAddress+":80"); - EntityTestUtils.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); } @Test @@ -297,7 +286,7 @@ public void testTransformUriWithDelayedPortMapping() throws Exception { portMapping.put(HostAndPort.fromParts(machineAddress, 80), HostAndPort.fromParts(publicAddress, 40080)); portForwardManager.associate(publicIpId, HostAndPort.fromParts(publicAddress, 40080), simulatedMachine, 80); - EntityTestUtils.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, "http://"+publicAddress+":"+40080); } @Test @@ -315,7 +304,7 @@ public void testTransformPort() throws Exception { entity.addLocations(ImmutableList.of(simulatedMachine)); entity.sensors().set(ENDPOINT, 80); - EntityTestUtils.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, publicAddress+":"+40080); } @Test @@ -340,7 +329,7 @@ public void testTransformPortDelayedPortMapping() throws Exception { portMapping.put(HostAndPort.fromParts(machineAddress, 80), HostAndPort.fromParts(publicAddress, 40080)); portForwardManager.associate(publicIpId, HostAndPort.fromParts(publicAddress, 40080), simulatedMachine, 80); - EntityTestUtils.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, publicAddress+":"+40080); + EntityAsserts.assertAttributeEqualsEventually(app, PUBLIC_ENDPOINT, publicAddress+":"+40080); } @Test diff --git a/portforwarding/src/test/java/brooklyn/networking/tunnelling/SshTunnellingIntegrationTest.java b/portforwarding/src/test/java/brooklyn/networking/tunnelling/SshTunnellingIntegrationTest.java index b81abd77..42aa8253 100644 --- a/portforwarding/src/test/java/brooklyn/networking/tunnelling/SshTunnellingIntegrationTest.java +++ b/portforwarding/src/test/java/brooklyn/networking/tunnelling/SshTunnellingIntegrationTest.java @@ -21,9 +21,15 @@ import java.io.File; import java.util.Arrays; +import org.apache.brooklyn.api.location.LocationSpec; +import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport; +import org.apache.brooklyn.location.ssh.SshMachineLocation; +import org.apache.brooklyn.util.net.Networking; +import org.apache.brooklyn.util.os.Os; +import org.apache.brooklyn.util.ssh.BashCommands; +import org.apache.brooklyn.util.text.Identifiers; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.testng.reporters.Files; @@ -31,39 +37,21 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import org.apache.brooklyn.api.location.LocationSpec; -import org.apache.brooklyn.api.mgmt.ManagementContext; -import org.apache.brooklyn.core.entity.Entities; -import org.apache.brooklyn.core.entity.factory.ApplicationBuilder; -import org.apache.brooklyn.core.test.entity.TestApplication; -import org.apache.brooklyn.location.ssh.SshMachineLocation; -import org.apache.brooklyn.util.net.Networking; -import org.apache.brooklyn.util.os.Os; -import org.apache.brooklyn.util.ssh.BashCommands; -import org.apache.brooklyn.util.text.Identifiers; - -public class SshTunnellingIntegrationTest { +public class SshTunnellingIntegrationTest extends BrooklynAppUnitTestSupport { private static final Logger log = LoggerFactory.getLogger(SshTunnellingIntegrationTest.class); - protected TestApplication app; - protected ManagementContext managementContext; protected SshMachineLocation localMachine; @BeforeMethod(alwaysRun=true) + @Override public void setUp() throws Exception { - app = ApplicationBuilder.newManagedApp(TestApplication.class); - managementContext = app.getManagementContext(); + super.setUp(); - localMachine = managementContext.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) + localMachine = mgmt.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) .configure("address", Networking.getLocalHost())); } - @AfterMethod(alwaysRun=true) - public void tearDown() throws Exception { - if (managementContext != null) Entities.destroyAll(managementContext); - } - // TODO This code checks if ~/.ssh/id_rsa already exists, and if it does then it's a no-op. // But uncomfortable including this code in automated tests just in case! Hence the guards in finally block. @Test(groups="Integration") @@ -114,7 +102,7 @@ public void testAuthorizePublicKey() throws Exception { SshTunnelling.authorizePublicKey(localMachine, publicKeyData); - SshMachineLocation viaForwarding = managementContext.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) + SshMachineLocation viaForwarding = mgmt.getLocationManager().createLocation(LocationSpec.create(SshMachineLocation.class) .configure("address", localMachine.getAddress()) .configure("port", localMachine.getPort()) .configure("user", localMachine.getUser()) @@ -123,7 +111,7 @@ public void testAuthorizePublicKey() throws Exception { assertTrue(viaForwarding.isSshable(), "hostAndPort="+viaForwarding); } finally { viaForwarding.close(); - managementContext.getLocationManager().unmanage(viaForwarding); + mgmt.getLocationManager().unmanage(viaForwarding); new File(privateKeyFile).delete(); new File(publicKeyFile).delete(); } diff --git a/vcloud-director-portforwarding/src/test/java/brooklyn/networking/vclouddirector/VcloudDirectorSubnetTierLiveTest.java b/vcloud-director-portforwarding/src/test/java/brooklyn/networking/vclouddirector/VcloudDirectorSubnetTierLiveTest.java index beb3ccc8..2987d7ba 100644 --- a/vcloud-director-portforwarding/src/test/java/brooklyn/networking/vclouddirector/VcloudDirectorSubnetTierLiveTest.java +++ b/vcloud-director-portforwarding/src/test/java/brooklyn/networking/vclouddirector/VcloudDirectorSubnetTierLiveTest.java @@ -33,6 +33,7 @@ import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.entity.EntityAndAttribute; +import org.apache.brooklyn.core.entity.EntityAsserts; import org.apache.brooklyn.core.entity.trait.Startable; import org.apache.brooklyn.core.location.Machines; import org.apache.brooklyn.core.location.PortRanges; @@ -42,7 +43,6 @@ import org.apache.brooklyn.entity.machine.MachineEntity; import org.apache.brooklyn.location.jclouds.JcloudsLocation; import org.apache.brooklyn.location.ssh.SshMachineLocation; -import org.apache.brooklyn.test.EntityTestUtils; import org.apache.brooklyn.util.net.Cidr; import org.apache.brooklyn.util.net.Protocol; import org.slf4j.Logger; @@ -204,9 +204,9 @@ protected HostAndPort runOpenPortForwardingAndAdvertise(Integer publicPort, bool // Confirm the expected port is advertised if (publicPort != null) { publicEndpoint = HostAndPort.fromParts(publicIp, publicPort); - EntityTestUtils.assertAttributeEqualsEventually(entity, MAPPED_ENDPOINT, publicEndpoint.toString()); + EntityAsserts.assertAttributeEqualsEventually(entity, MAPPED_ENDPOINT, publicEndpoint.toString()); } else { - String mappedEndpoint = EntityTestUtils.assertAttributeEventuallyNonNull(entity, MAPPED_ENDPOINT); + String mappedEndpoint = EntityAsserts.assertAttributeEventuallyNonNull(entity, MAPPED_ENDPOINT); publicEndpoint = HostAndPort.fromString(mappedEndpoint); assertEquals(publicEndpoint.getHostText(), publicIp); assertTrue(publicEndpoint.hasPort(), "result="+publicEndpoint); diff --git a/vcloud-director/src/main/java/brooklyn/networking/vclouddirector/NatService.java b/vcloud-director/src/main/java/brooklyn/networking/vclouddirector/NatService.java index 63376c86..28b5cb15 100644 --- a/vcloud-director/src/main/java/brooklyn/networking/vclouddirector/NatService.java +++ b/vcloud-director/src/main/java/brooklyn/networking/vclouddirector/NatService.java @@ -434,10 +434,10 @@ private UpdateResult updatePortForwardingImpl(Delta delta) throws VCloudExceptio // Remove the closed rules for (PortForwardingConfig arg : delta.toClose) { // TODO Could also match on networkId - Iterable filtered = Iterables.filter(natService.getNatRule(), Predicates.and( + Iterable filtered = Iterables.filter(natService.getNatRule(), Predicates.and(ImmutableList.of( NatPredicates.protocolMatches(arg.getProtocol()), NatPredicates.originalEndpointEquals(arg.getPublicEndpoint().getHostText(), arg.getPublicEndpoint().getPort()), - NatPredicates.translatedEndpointEquals(arg.getTargetEndpoint().getHostText(), arg.getTargetEndpoint().getPort()))); + NatPredicates.translatedEndpointEquals(arg.getTargetEndpoint().getHostText(), arg.getTargetEndpoint().getPort())))); natService.getNatRule().removeAll(Lists.newArrayList(filtered)); result.closed(arg, arg); @@ -488,10 +488,10 @@ private UpdateResult updatePortForwardingImpl(Delta delta) throws VCloudExceptio // Confirm that deleted rules don't exist. for (PortForwardingConfig arg : result.getClosed().values()) { - Iterable matches = Iterables.filter(rules, Predicates.and( + Iterable matches = Iterables.filter(rules, Predicates.and(ImmutableList.of( NatPredicates.protocolMatches(arg.getProtocol()), NatPredicates.originalEndpointEquals(arg.getPublicEndpoint().getHostText(), arg.getPublicEndpoint().getPort()), - NatPredicates.translatedEndpointEquals(arg.getTargetEndpoint().getHostText(), arg.getTargetEndpoint().getPort()))); + NatPredicates.translatedEndpointEquals(arg.getTargetEndpoint().getHostText(), arg.getTargetEndpoint().getPort())))); if (!Iterables.isEmpty(matches)) { throw new IllegalStateException( diff --git a/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/AbstractNatServiceLiveTest.java b/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/AbstractNatServiceLiveTest.java index 0d4dc03d..ac75134c 100644 --- a/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/AbstractNatServiceLiveTest.java +++ b/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/AbstractNatServiceLiveTest.java @@ -94,7 +94,7 @@ public abstract class AbstractNatServiceLiveTest extends BrooklynAppLiveTestSupp @Override public void setUp() throws Exception { super.setUp(); - loc = (JcloudsLocation) mgmt.getLocationRegistry().resolve(LOCATION_SPEC); + loc = (JcloudsLocation) mgmt.getLocationRegistry().getLocationManaged(LOCATION_SPEC); publicIp = (String) checkNotNull(loc.config().getBag().getStringKey("advancednetworking.vcloud.network.publicip"), "publicip"); executor = MoreExecutors.listeningDecorator(Executors.newCachedThreadPool()); diff --git a/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/NatServiceLiveTest.java b/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/NatServiceLiveTest.java index 102f3a8a..557f2638 100644 --- a/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/NatServiceLiveTest.java +++ b/vcloud-director/src/test/java/brooklyn/networking/vclouddirector/NatServiceLiveTest.java @@ -46,7 +46,7 @@ public class NatServiceLiveTest extends AbstractNatServiceLiveTest { // TAI (as at 2014-12-16) is running vcloud-director version 5.1 @Test(groups="Live") public void testGetNatRulesAtTai() throws Exception { - JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().resolve(LOCATION_TAI_SPEC); + JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().getLocationManaged(LOCATION_TAI_SPEC); NatService service = newServiceBuilder(loc2) .portRange(DEFAULT_PORT_RANGE) .build(); @@ -57,7 +57,7 @@ public void testGetNatRulesAtTai() throws Exception { // TAI2.0 (as at 2015-04-27) is running vcloud-director version 5.5 @Test(groups="Live") public void testGetNatRulesAtTai2() throws Exception { - JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().resolve(LOCATION_TAI_2_SPEC); + JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().getLocationManaged(LOCATION_TAI_2_SPEC); NatService service = newServiceBuilder(loc2) .portRange(DEFAULT_PORT_RANGE) .build(); @@ -69,7 +69,7 @@ public void testGetNatRulesAtTai2() throws Exception { // TAI2.0 (as at 2015-04-27) is running vcloud-director version 5.5 @Test(groups="Live") public void testGetNatRulesAtTai2b() throws Exception { - JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().resolve(LOCATION_TAI_2b_SPEC); + JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().getLocationManaged(LOCATION_TAI_2b_SPEC); NatService service = newServiceBuilder(loc2) .portRange(DEFAULT_PORT_RANGE) .build(); @@ -87,7 +87,7 @@ public void testGetNatRules() throws Exception { @Test(groups="Live") public void testAddNatRuleAtTai2() throws Exception { - JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().resolve(LOCATION_TAI_2_SPEC); + JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().getLocationManaged(LOCATION_TAI_2_SPEC); String publicIp2 = (String) checkNotNull(loc2.config().getBag().getStringKey("advancednetworking.vcloud.network.publicip"), "publicip"); HostAndPort targetEndpoint = HostAndPort.fromParts(INTERNAL_MACHINE_IP_TAI_2, 1); @@ -116,7 +116,7 @@ public void testAddNatRuleAtTai2() throws Exception { @Test(groups="Live") public void testAddNatRuleAtTai2b() throws Exception { - JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().resolve(LOCATION_TAI_2b_SPEC); + JcloudsLocation loc2 = (JcloudsLocation) mgmt.getLocationRegistry().getLocationManaged(LOCATION_TAI_2b_SPEC); String publicIp2 = (String) checkNotNull(loc2.config().getBag().getStringKey("advancednetworking.vcloud.network.publicip"), "publicip"); HostAndPort targetEndpoint = HostAndPort.fromParts(INTERNAL_MACHINE_IP_TAI_2b, 1);