http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/api/src/main/java/org/apache/brooklyn/location/MachineProvisioningLocation.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/location/MachineProvisioningLocation.java b/api/src/main/java/org/apache/brooklyn/location/MachineProvisioningLocation.java new file mode 100644 index 0000000..c3bc346 --- /dev/null +++ b/api/src/main/java/org/apache/brooklyn/location/MachineProvisioningLocation.java @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location; + +import java.util.Collection; +import java.util.Map; + +/** + * A location that is able to provision new machines within its location. + * + * This interface extends {@link Location} to add the ability to provision {@link MachineLocation}s in this location. + */ +public interface MachineProvisioningLocation<T extends MachineLocation> extends ProvisioningLocation<T> { + /** + * Obtain a machine in this location. + * + * @param flags Details of the desired machine (e.g. image, size, open ports, etc; some flag support is limited to selected providers). + * "callerContext" can be specified to have custom logging and error messages (useful if starting machines in parallel) + * @return a machine that is a child of this location. + * @throws NoMachinesAvailableException if there are no machines available in this location (or impls may return null, but that is discouraged) + */ + @Override + T obtain(Map<?,?> flags) throws NoMachinesAvailableException; + + /** + * Creates a new location of the same type, but with additional creation instructions in the form of flags, + * e.g. for specifying subnets, security groups, etc + * <p> + * Implementers who wish to subclass this provisioning location for additional functionality + * in a specific cloud can use the relevant implementation of this method as a guide. + */ + MachineProvisioningLocation<T> newSubLocation(Map<?,?> newFlags); + + /** + * Release a previously-obtained machine. + * + * @param machine a {@link MachineLocation} previously obtained from a call to {@link #obtain()} + * @throws IllegalStateException if the machine did not come from a call to {@link #obtain()} or it has already been released. + */ + @Override + void release(T machine); + + /** + * Gets flags, suitable as an argument to {@link #obtain(Map)}. The tags provided give + * hints about the machine required. The provisioning-location could be configured to + * understand those tags. + * + * For example, an AWS-location could be configured to understand that a particular entity + * type (e.g. "TomcatServer") requires a particular AMI in that region, so would return the + * required image id. + * + * @param tags + * @return + */ + Map<String,Object> getProvisioningFlags(Collection<String> tags); +}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/api/src/main/java/org/apache/brooklyn/location/NoMachinesAvailableException.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/location/NoMachinesAvailableException.java b/api/src/main/java/org/apache/brooklyn/location/NoMachinesAvailableException.java new file mode 100644 index 0000000..d8f16ce --- /dev/null +++ b/api/src/main/java/org/apache/brooklyn/location/NoMachinesAvailableException.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location; + + +/** + * Indicates no machines are available in a given location. + */ +public class NoMachinesAvailableException extends LocationNotAvailableException { + private static final long serialVersionUID = 1079817235289265761L; + + public NoMachinesAvailableException(String s) { + super(s); + } + + public NoMachinesAvailableException(String s, Throwable throwable) { + super(s, throwable); + } +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/api/src/main/java/org/apache/brooklyn/location/OsDetails.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/location/OsDetails.java b/api/src/main/java/org/apache/brooklyn/location/OsDetails.java new file mode 100644 index 0000000..c5aea67 --- /dev/null +++ b/api/src/main/java/org/apache/brooklyn/location/OsDetails.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location; + +import javax.annotation.Nullable; + +public interface OsDetails { + + /** The name of the operating system, e.g. "Debian" or "Red Hat Enterprise Linux Server" */ + @Nullable + String getName(); + + /** + * The version of the operating system. Generally numeric (e.g. "6.3") but occasionally + * alphabetic (e.g. Debian's "Squeeze"). + */ + @Nullable + String getVersion(); + + /** The operating system's architecture, e.g. "x86" or "x86_64" */ + @Nullable + String getArch(); + + boolean is64bit(); + + boolean isWindows(); + boolean isLinux(); + boolean isMac(); + +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/api/src/main/java/org/apache/brooklyn/location/PortRange.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/location/PortRange.java b/api/src/main/java/org/apache/brooklyn/location/PortRange.java new file mode 100644 index 0000000..25dd621 --- /dev/null +++ b/api/src/main/java/org/apache/brooklyn/location/PortRange.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location; + +/** + * A range of ports (indicator for Location and other APIs). + * Using methods {@code PortRanges.fromXxx(...)} this is adaptable from a number, a string, or a collection of numbers or a strings. + * String may be of the form: + * <li> "80": just 80 + * <li> "8080-8090": limited range sequentially; ie try 8080, then 8081, ..., then 8090, then give up + * <li> "8080-8000": as above, but descending; ie try 8080, then 8079, ..., then 8000, then give up + * <li> "8000+": unlimited range sequentially; ie try 8000, then 8001, then 8002, etc + * <li> "80,8080,8000,8080-8099": different ranges, in order; ie try 80, then 8080, then 8000, then 8080 (again), then 8081, ..., then 8099, then give up + * Ranges (but not lists) may be preceeded by "!" to indicate a randomly selected port: + * + * @see brooklyn.location.basic.PortRanges + */ +//MAYDO could have: <li> "~32168-65535" (or "~32168-"): try randomly selected numbers in range 32168-65535 (MAX_PORT) until all have been tried +public interface PortRange extends Iterable<Integer> { + /** + * Whether there are any ports in the range. + */ + boolean isEmpty(); + + /** + * Note: this method is only here for use with "groovy truth". Users are strongly discouraged + * from calling it directly. + * + * @return {@code !isEmpty()}; i.e. true if there is at least one port in the range; false otherwise + */ + boolean asBoolean(); +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/api/src/main/java/org/apache/brooklyn/location/PortSupplier.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/location/PortSupplier.java b/api/src/main/java/org/apache/brooklyn/location/PortSupplier.java new file mode 100644 index 0000000..24572a0 --- /dev/null +++ b/api/src/main/java/org/apache/brooklyn/location/PortSupplier.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location; + +/** Mixin interface for location which allows it to supply ports from a given range */ +public interface PortSupplier { + + /** + * Reserve a specific port for an application. If your application requires a specific port - for example, port 80 for a web + * server - you should reserve this port before starting your application. Using this method, you will be able to detect if + * another application has already claimed this port number. + * + * @param portNumber the required port number. + * @return {@code true} if the port was successfully reserved; {@code false} if it has been previously reserved. + */ + boolean obtainSpecificPort(int portNumber); + + /** + * Reserve a port for your application, with a port number in a specific range. If your application requires a port, but it does + * not mind exactly which port number - for example, a port for internal JMX monitoring - call this method. + * + * @param range the range of acceptable port numbers. + * @return the port number that has been reserved, or -1 if there was no available port in the acceptable range. + */ + int obtainPort(PortRange range); + + /** + * Release a previously reserved port. + * + * @param portNumber the port number from a call to {@link #obtainPort(PortRange)} or {@link #obtainSpecificPort(int)} + */ + void releasePort(int portNumber); + +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/api/src/main/java/org/apache/brooklyn/location/ProvisioningLocation.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/location/ProvisioningLocation.java b/api/src/main/java/org/apache/brooklyn/location/ProvisioningLocation.java new file mode 100644 index 0000000..3cc3f92 --- /dev/null +++ b/api/src/main/java/org/apache/brooklyn/location/ProvisioningLocation.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location; + +import java.util.Map; + +/** + * A location that is able to provision new locations within it. + */ +public interface ProvisioningLocation<T extends Location> extends Location { + /** + * Obtain a new (sub)-location in the location represented by this class. + * + * @param flags Constraints and details of the location to be provisioned + * @return the location provisioned + * @throws LocationNotAvailableException if could not provision such a location + */ + T obtain(Map<?,?> flags) throws LocationNotAvailableException; + + /** + * Release a previously-obtained location. + * + * @param location a location previously obtained + * @throws IllegalStateException if the machine did not come from a call to {@link #obtain()} or it has already been released. + */ + void release(T machine); + +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java index e9a9a58..8c6f7e1 100644 --- a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java +++ b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java @@ -37,7 +37,7 @@ import org.apache.brooklyn.api.management.ManagementContext; import org.apache.brooklyn.policy.Enricher; import org.apache.brooklyn.policy.Policy; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.time.Duration; import com.google.common.annotations.Beta; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/basic/BrooklynTypes.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/basic/BrooklynTypes.java b/core/src/main/java/brooklyn/basic/BrooklynTypes.java index 8db853d..4ccbfd0 100644 --- a/core/src/main/java/brooklyn/basic/BrooklynTypes.java +++ b/core/src/main/java/brooklyn/basic/BrooklynTypes.java @@ -29,7 +29,7 @@ import org.apache.brooklyn.policy.Policy; import brooklyn.config.ConfigKey; import brooklyn.enricher.basic.EnricherDynamicType; import brooklyn.entity.basic.EntityDynamicType; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.policy.basic.PolicyDynamicType; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/catalog/CatalogPredicates.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/catalog/CatalogPredicates.java b/core/src/main/java/brooklyn/catalog/CatalogPredicates.java index 99e1a8f..e9778ab 100644 --- a/core/src/main/java/brooklyn/catalog/CatalogPredicates.java +++ b/core/src/main/java/brooklyn/catalog/CatalogPredicates.java @@ -30,8 +30,8 @@ import org.apache.brooklyn.policy.Policy; import org.apache.brooklyn.policy.PolicySpec; import brooklyn.catalog.internal.CatalogUtils; -import brooklyn.location.Location; -import brooklyn.location.LocationSpec; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.LocationSpec; import brooklyn.management.entitlement.Entitlements; import com.google.common.base.Function; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java index b1d5385..a3bb808 100644 --- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java +++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java @@ -54,9 +54,9 @@ import org.apache.brooklyn.policy.PolicySpec; import brooklyn.catalog.CatalogPredicates; import brooklyn.catalog.internal.CatalogClasspathDo.CatalogScanningModes; import brooklyn.config.BrooklynServerConfig; -import brooklyn.location.Location; -import brooklyn.location.LocationSpec; -import brooklyn.location.basic.BasicLocationRegistry; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.LocationSpec; +import org.apache.brooklyn.location.basic.BasicLocationRegistry; import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.collections.MutableList; import brooklyn.util.collections.MutableMap; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java index 0f9bde9..af0e53d 100644 --- a/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java +++ b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java @@ -39,7 +39,7 @@ import org.apache.brooklyn.api.entity.proxying.ImplementedBy; import org.apache.brooklyn.policy.Policy; import brooklyn.entity.basic.ApplicationBuilder; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.ResourceUtils; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/catalog/internal/CatalogLocationItemDto.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogLocationItemDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogLocationItemDto.java index e8bf2ec..8d12b1a 100644 --- a/core/src/main/java/brooklyn/catalog/internal/CatalogLocationItemDto.java +++ b/core/src/main/java/brooklyn/catalog/internal/CatalogLocationItemDto.java @@ -18,8 +18,8 @@ */ package brooklyn.catalog.internal; -import brooklyn.location.Location; -import brooklyn.location.LocationSpec; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.LocationSpec; public class CatalogLocationItemDto extends CatalogItemDtoAbstract<Location,LocationSpec<?>> { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java b/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java index dc99712..0e570b7 100644 --- a/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java +++ b/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java @@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory; import brooklyn.config.ConfigKey; import brooklyn.entity.basic.ServiceStateLogic.ServiceProblemsLogic; import brooklyn.entity.trait.StartableMethods; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.exceptions.Exceptions; import brooklyn.util.exceptions.RuntimeInterruptedException; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java index c7a017c..db1c26f 100644 --- a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java +++ b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java @@ -76,8 +76,8 @@ import brooklyn.internal.BrooklynInitialization; import brooklyn.internal.storage.BrooklynStorage; import brooklyn.internal.storage.Reference; import brooklyn.internal.storage.impl.BasicReference; -import brooklyn.location.Location; -import brooklyn.location.basic.Locations; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.basic.Locations; import brooklyn.management.internal.EffectorUtils; import brooklyn.management.internal.EntityManagementSupport; import brooklyn.management.internal.ManagementContextInternal; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/BasicStartable.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/BasicStartable.java b/core/src/main/java/brooklyn/entity/basic/BasicStartable.java index 8ddc794..00d87c3 100644 --- a/core/src/main/java/brooklyn/entity/basic/BasicStartable.java +++ b/core/src/main/java/brooklyn/entity/basic/BasicStartable.java @@ -25,8 +25,8 @@ import org.apache.brooklyn.api.entity.proxying.ImplementedBy; import brooklyn.config.ConfigKey; import brooklyn.entity.trait.Startable; -import brooklyn.location.Location; -import brooklyn.location.basic.Locations; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.basic.Locations; import com.google.common.collect.ImmutableList; @@ -51,6 +51,6 @@ public interface BasicStartable extends Entity, Startable { }; } - public static final ConfigKey<brooklyn.location.basic.Locations.LocationsFilter> LOCATIONS_FILTER = ConfigKeys.newConfigKey(brooklyn.location.basic.Locations.LocationsFilter.class, + public static final ConfigKey<Locations.LocationsFilter> LOCATIONS_FILTER = ConfigKeys.newConfigKey(Locations.LocationsFilter.class, "brooklyn.locationsFilter", "Provides a hook for customizing locations to be used for a given context"); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java b/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java index 0552f75..630bdd8 100644 --- a/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java +++ b/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java @@ -24,12 +24,13 @@ import java.util.List; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.management.Task; +import org.apache.brooklyn.location.basic.Locations; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import brooklyn.entity.trait.Startable; import brooklyn.entity.trait.StartableMethods; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.exceptions.Exceptions; import com.google.common.base.Predicates; @@ -51,7 +52,7 @@ public class BasicStartableImpl extends AbstractEntity implements BasicStartable // essentially does StartableMethods.start(this, locations), // but optionally filters locations for each child - brooklyn.location.basic.Locations.LocationsFilter filter = getConfig(LOCATIONS_FILTER); + Locations.LocationsFilter filter = getConfig(LOCATIONS_FILTER); Iterable<Entity> startables = filterStartableManagedEntities(getChildren()); if (!Iterables.isEmpty(startables)) { List<Task<?>> tasks = Lists.newArrayListWithCapacity(Iterables.size(startables)); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java b/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java index 3c641cb..ac3de30 100644 --- a/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java +++ b/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java @@ -24,7 +24,7 @@ import brooklyn.config.ConfigKey; import brooklyn.entity.trait.Startable; import brooklyn.event.basic.AttributeSensorAndConfigKey; import brooklyn.event.basic.TemplatedStringAttributeSensorAndConfigKey; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.internal.ssh.ShellTool; import brooklyn.util.internal.ssh.SshTool; import brooklyn.util.time.Duration; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/DataEntityImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/DataEntityImpl.java b/core/src/main/java/brooklyn/entity/basic/DataEntityImpl.java index d6a465c..52ba52e 100644 --- a/core/src/main/java/brooklyn/entity/basic/DataEntityImpl.java +++ b/core/src/main/java/brooklyn/entity/basic/DataEntityImpl.java @@ -25,7 +25,7 @@ import org.apache.brooklyn.api.event.AttributeSensor; import brooklyn.event.feed.function.FunctionFeed; import brooklyn.event.feed.function.FunctionPollConfig; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import com.google.common.base.Functions; import com.google.common.base.Supplier; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/EffectorStartableImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/EffectorStartableImpl.java b/core/src/main/java/brooklyn/entity/basic/EffectorStartableImpl.java index 92a1e68..1bbb4c1 100644 --- a/core/src/main/java/brooklyn/entity/basic/EffectorStartableImpl.java +++ b/core/src/main/java/brooklyn/entity/basic/EffectorStartableImpl.java @@ -27,7 +27,7 @@ import brooklyn.config.ConfigKey; import brooklyn.entity.annotation.Effector; import brooklyn.entity.annotation.EffectorParam; import brooklyn.entity.trait.Startable; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.config.ConfigBag; import com.google.common.reflect.TypeToken; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/Entities.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/Entities.java b/core/src/main/java/brooklyn/entity/basic/Entities.java index d49dad3..c1cac26 100644 --- a/core/src/main/java/brooklyn/entity/basic/Entities.java +++ b/core/src/main/java/brooklyn/entity/basic/Entities.java @@ -69,10 +69,10 @@ import brooklyn.entity.proxying.EntityProxyImpl; import brooklyn.entity.trait.Startable; import brooklyn.entity.trait.StartableMethods; import brooklyn.event.basic.DependentConfiguration; -import brooklyn.location.Location; -import brooklyn.location.LocationSpec; -import brooklyn.location.basic.LocationInternal; -import brooklyn.location.basic.Locations; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.LocationSpec; +import org.apache.brooklyn.location.basic.LocationInternal; +import org.apache.brooklyn.location.basic.Locations; import brooklyn.management.internal.EffectorUtils; import brooklyn.management.internal.EntityManagerInternal; import brooklyn.management.internal.LocalManagementContext; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/EntityFactoryForLocation.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/EntityFactoryForLocation.java b/core/src/main/java/brooklyn/entity/basic/EntityFactoryForLocation.java index f1644aa..eb7ef3a 100644 --- a/core/src/main/java/brooklyn/entity/basic/EntityFactoryForLocation.java +++ b/core/src/main/java/brooklyn/entity/basic/EntityFactoryForLocation.java @@ -20,7 +20,7 @@ package brooklyn.entity.basic; import org.apache.brooklyn.api.entity.Entity; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; /** * dispatch interface to allow an EntityFactory to indicate it might be able to discover http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java b/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java index 97f6618..1250d40 100644 --- a/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java +++ b/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java @@ -31,7 +31,7 @@ import org.apache.brooklyn.api.event.AttributeSensor; import org.apache.brooklyn.api.management.ManagementContext; import brooklyn.config.ConfigKey; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.flags.TypeCoercions; import brooklyn.util.guava.Functionals; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/EntityInternal.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/EntityInternal.java b/core/src/main/java/brooklyn/entity/basic/EntityInternal.java index 8fe53d2..08c3e19 100644 --- a/core/src/main/java/brooklyn/entity/basic/EntityInternal.java +++ b/core/src/main/java/brooklyn/entity/basic/EntityInternal.java @@ -34,7 +34,7 @@ import org.apache.brooklyn.mementos.EntityMemento; import brooklyn.basic.BrooklynObjectInternal; import brooklyn.config.ConfigKey; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.management.internal.EntityManagementSupport; import brooklyn.util.config.ConfigBag; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/EntityPredicates.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/EntityPredicates.java b/core/src/main/java/brooklyn/entity/basic/EntityPredicates.java index ac5adbf..7c7d2f3 100644 --- a/core/src/main/java/brooklyn/entity/basic/EntityPredicates.java +++ b/core/src/main/java/brooklyn/entity/basic/EntityPredicates.java @@ -29,7 +29,7 @@ import org.apache.brooklyn.api.event.AttributeSensor; import brooklyn.config.ConfigKey; import brooklyn.config.ConfigKey.HasConfigKey; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.collections.CollectionFunctionals; import brooklyn.util.guava.SerializablePredicate; import brooklyn.util.javalang.Reflections; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/EntitySuppliers.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/EntitySuppliers.java b/core/src/main/java/brooklyn/entity/basic/EntitySuppliers.java index c0f30b9..0a5defd 100644 --- a/core/src/main/java/brooklyn/entity/basic/EntitySuppliers.java +++ b/core/src/main/java/brooklyn/entity/basic/EntitySuppliers.java @@ -20,8 +20,8 @@ package brooklyn.entity.basic; import org.apache.brooklyn.api.entity.Entity; -import brooklyn.location.basic.Machines; -import brooklyn.location.basic.SshMachineLocation; +import org.apache.brooklyn.location.basic.Machines; +import org.apache.brooklyn.location.basic.SshMachineLocation; import com.google.common.base.Supplier; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java b/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java index 0325171..70a1667 100644 --- a/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java +++ b/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java @@ -20,9 +20,7 @@ package brooklyn.entity.basic; import java.util.Collection; import java.util.Map; -import java.util.Set; -import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.apache.brooklyn.api.basic.BrooklynObject.TagSupport; @@ -43,7 +41,7 @@ import brooklyn.config.ConfigKey; import brooklyn.config.ConfigKey.HasConfigKey; import brooklyn.entity.basic.EntityInternal.FeedSupport; import brooklyn.entity.proxying.EntityProxyImpl; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.management.internal.EntityManagementSupport; import brooklyn.util.config.ConfigBag; import brooklyn.util.guava.Maybe; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/basic/Lifecycle.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/Lifecycle.java b/core/src/main/java/brooklyn/entity/basic/Lifecycle.java index 9918bde..75b32b4 100644 --- a/core/src/main/java/brooklyn/entity/basic/Lifecycle.java +++ b/core/src/main/java/brooklyn/entity/basic/Lifecycle.java @@ -31,6 +31,7 @@ import com.google.common.base.CaseFormat; import com.google.common.base.Function; import com.google.common.base.Objects; import com.google.common.base.Preconditions; +import org.apache.brooklyn.location.Location; /** * An enumeration representing the status of an {@link org.apache.brooklyn.api.entity.Entity}. @@ -41,7 +42,7 @@ public enum Lifecycle { * * This stage encompasses the contruction. Once this stage is * complete, the basic set of {@link brooklyn.event.Sensor}s will be available, apart from any that require the entity to be active or - * deployed to a {@link brooklyn.location.Location}. + * deployed to a {@link Location}. */ CREATED, http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/drivers/BasicEntityDriverManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/drivers/BasicEntityDriverManager.java b/core/src/main/java/brooklyn/entity/drivers/BasicEntityDriverManager.java index 3a9ed09..889a05a 100644 --- a/core/src/main/java/brooklyn/entity/drivers/BasicEntityDriverManager.java +++ b/core/src/main/java/brooklyn/entity/drivers/BasicEntityDriverManager.java @@ -24,7 +24,7 @@ import org.apache.brooklyn.api.entity.drivers.EntityDriverManager; import com.google.common.annotations.Beta; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; public class BasicEntityDriverManager implements EntityDriverManager { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/drivers/ReflectiveEntityDriverFactory.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/drivers/ReflectiveEntityDriverFactory.java b/core/src/main/java/brooklyn/entity/drivers/ReflectiveEntityDriverFactory.java index 3c3836a..86591b3 100644 --- a/core/src/main/java/brooklyn/entity/drivers/ReflectiveEntityDriverFactory.java +++ b/core/src/main/java/brooklyn/entity/drivers/ReflectiveEntityDriverFactory.java @@ -28,10 +28,10 @@ import org.apache.brooklyn.api.entity.drivers.EntityDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import brooklyn.location.Location; -import brooklyn.location.basic.SshMachineLocation; -import brooklyn.location.paas.PaasLocation; -import brooklyn.location.basic.WinRmMachineLocation; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.basic.SshMachineLocation; +import org.apache.brooklyn.location.paas.PaasLocation; +import org.apache.brooklyn.location.basic.WinRmMachineLocation; import brooklyn.util.collections.MutableList; import brooklyn.util.collections.MutableMap; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/drivers/RegistryEntityDriverFactory.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/drivers/RegistryEntityDriverFactory.java b/core/src/main/java/brooklyn/entity/drivers/RegistryEntityDriverFactory.java index 84265dc..2c1243f 100644 --- a/core/src/main/java/brooklyn/entity/drivers/RegistryEntityDriverFactory.java +++ b/core/src/main/java/brooklyn/entity/drivers/RegistryEntityDriverFactory.java @@ -30,7 +30,7 @@ import org.apache.brooklyn.api.entity.drivers.DriverDependentEntity; import org.apache.brooklyn.api.entity.drivers.EntityDriver; import org.apache.brooklyn.api.entity.drivers.EntityDriverManager; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import com.google.common.base.Objects; import com.google.common.base.Throwables; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java b/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java index 353d721..e7657ea 100644 --- a/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java +++ b/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java @@ -33,9 +33,9 @@ import org.slf4j.LoggerFactory; import brooklyn.config.ConfigKey; import brooklyn.entity.basic.BrooklynTaskTags; import brooklyn.entity.basic.ConfigKeys; -import brooklyn.location.basic.Machines; -import brooklyn.location.basic.SshMachineLocation; -import brooklyn.location.basic.WinRmMachineLocation; +import org.apache.brooklyn.location.basic.Machines; +import org.apache.brooklyn.location.basic.SshMachineLocation; +import org.apache.brooklyn.location.basic.WinRmMachineLocation; import brooklyn.management.internal.EffectorUtils; import brooklyn.util.config.ConfigBag; import brooklyn.util.javalang.Reflections; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/DynamicCluster.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/DynamicCluster.java b/core/src/main/java/brooklyn/entity/group/DynamicCluster.java index 27e158e..e6f31de 100644 --- a/core/src/main/java/brooklyn/entity/group/DynamicCluster.java +++ b/core/src/main/java/brooklyn/entity/group/DynamicCluster.java @@ -45,7 +45,7 @@ import brooklyn.entity.trait.MemberReplaceable; import brooklyn.event.basic.BasicAttributeSensor; import brooklyn.event.basic.BasicNotificationSensor; import brooklyn.event.basic.Sensors; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.flags.SetFromFlag; import brooklyn.util.time.Duration; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java index 287abc8..eafb161 100644 --- a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java +++ b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java @@ -52,10 +52,10 @@ import brooklyn.entity.basic.ServiceStateLogic.ServiceProblemsLogic; import brooklyn.entity.effector.Effectors; import brooklyn.entity.trait.Startable; import brooklyn.entity.trait.StartableMethods; -import brooklyn.location.Location; -import brooklyn.location.MachineProvisioningLocation; -import brooklyn.location.basic.Locations; -import brooklyn.location.cloud.AvailabilityZoneExtension; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.MachineProvisioningLocation; +import org.apache.brooklyn.location.basic.Locations; +import org.apache.brooklyn.location.cloud.AvailabilityZoneExtension; import brooklyn.util.collections.MutableList; import brooklyn.util.collections.MutableMap; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java index d6b0884..60f437e 100644 --- a/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java +++ b/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java @@ -45,7 +45,7 @@ import brooklyn.entity.basic.ServiceStateLogic; import brooklyn.entity.effector.Effectors; import brooklyn.entity.trait.Changeable; import brooklyn.entity.trait.Startable; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.GroovyJavaMethods; import brooklyn.util.collections.MutableList; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java index a165f62..eeab8e2 100644 --- a/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java +++ b/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java @@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.trait.Startable; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.exceptions.Exceptions; import com.google.common.base.Preconditions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/zoneaware/AbstractZoneFailureDetector.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/zoneaware/AbstractZoneFailureDetector.java b/core/src/main/java/brooklyn/entity/group/zoneaware/AbstractZoneFailureDetector.java index d2082ca..62b07eb 100644 --- a/core/src/main/java/brooklyn/entity/group/zoneaware/AbstractZoneFailureDetector.java +++ b/core/src/main/java/brooklyn/entity/group/zoneaware/AbstractZoneFailureDetector.java @@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit; import org.apache.brooklyn.api.entity.Entity; import brooklyn.entity.group.DynamicCluster.ZoneFailureDetector; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import com.google.common.annotations.Beta; import com.google.common.base.Ticker; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/zoneaware/BalancingNodePlacementStrategy.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/zoneaware/BalancingNodePlacementStrategy.java b/core/src/main/java/brooklyn/entity/group/zoneaware/BalancingNodePlacementStrategy.java index 2393f47..700b0b5 100644 --- a/core/src/main/java/brooklyn/entity/group/zoneaware/BalancingNodePlacementStrategy.java +++ b/core/src/main/java/brooklyn/entity/group/zoneaware/BalancingNodePlacementStrategy.java @@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.group.DynamicCluster.NodePlacementStrategy; import brooklyn.entity.trait.Startable; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/zoneaware/CombiningZoneFailureDetector.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/zoneaware/CombiningZoneFailureDetector.java b/core/src/main/java/brooklyn/entity/group/zoneaware/CombiningZoneFailureDetector.java index f318106..b7ea052 100644 --- a/core/src/main/java/brooklyn/entity/group/zoneaware/CombiningZoneFailureDetector.java +++ b/core/src/main/java/brooklyn/entity/group/zoneaware/CombiningZoneFailureDetector.java @@ -23,7 +23,7 @@ import java.util.List; import org.apache.brooklyn.api.entity.Entity; import brooklyn.entity.group.DynamicCluster.ZoneFailureDetector; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/zoneaware/CriticalCauseZoneFailureDetector.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/zoneaware/CriticalCauseZoneFailureDetector.java b/core/src/main/java/brooklyn/entity/group/zoneaware/CriticalCauseZoneFailureDetector.java index 6691985..ecdf73f 100644 --- a/core/src/main/java/brooklyn/entity/group/zoneaware/CriticalCauseZoneFailureDetector.java +++ b/core/src/main/java/brooklyn/entity/group/zoneaware/CriticalCauseZoneFailureDetector.java @@ -18,7 +18,7 @@ */ package brooklyn.entity.group.zoneaware; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.time.Duration; import com.google.common.base.Predicate; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/group/zoneaware/ProportionalZoneFailureDetector.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/zoneaware/ProportionalZoneFailureDetector.java b/core/src/main/java/brooklyn/entity/group/zoneaware/ProportionalZoneFailureDetector.java index dfec84a..13a9ed0 100644 --- a/core/src/main/java/brooklyn/entity/group/zoneaware/ProportionalZoneFailureDetector.java +++ b/core/src/main/java/brooklyn/entity/group/zoneaware/ProportionalZoneFailureDetector.java @@ -18,7 +18,7 @@ */ package brooklyn.entity.group.zoneaware; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.time.Duration; import com.google.common.base.Ticker; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java index 3c665f6..f44602f 100644 --- a/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java +++ b/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java @@ -25,11 +25,10 @@ import java.util.Map.Entry; import org.apache.brooklyn.api.management.ManagementContext; import brooklyn.config.ConfigKey; -import brooklyn.entity.basic.AbstractEntity; -import brooklyn.location.Location; -import brooklyn.location.LocationSpec; -import brooklyn.location.basic.AbstractLocation; -import brooklyn.location.basic.LocationInternal; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.LocationSpec; +import org.apache.brooklyn.location.basic.AbstractLocation; +import org.apache.brooklyn.location.basic.LocationInternal; import brooklyn.management.internal.LocalLocationManager; import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.config.ConfigBag; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java b/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java index c0139ae..29aa938 100644 --- a/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java +++ b/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java @@ -40,7 +40,7 @@ import brooklyn.entity.basic.AbstractGroupImpl; import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.rebind.dto.MementosGenerators; import brooklyn.event.feed.AbstractFeed; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.policy.basic.AbstractPolicy; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java b/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java index 13c6d83..1719eff 100644 --- a/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java +++ b/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java @@ -30,8 +30,8 @@ import org.slf4j.LoggerFactory; import brooklyn.config.ConfigKey; import brooklyn.entity.rebind.dto.MementosGenerators; -import brooklyn.location.Location; -import brooklyn.location.basic.AbstractLocation; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.basic.AbstractLocation; import brooklyn.util.collections.MutableMap; import brooklyn.util.flags.FlagUtils; import brooklyn.util.flags.TypeCoercions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java b/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java index 3039e89..d92fa72 100644 --- a/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java +++ b/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java @@ -38,8 +38,8 @@ import org.apache.brooklyn.mementos.PolicyMemento; import org.apache.brooklyn.policy.Enricher; import org.apache.brooklyn.policy.Policy; -import brooklyn.location.Location; -import brooklyn.location.basic.LocationInternal; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.basic.LocationInternal; import com.google.common.collect.Maps; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java b/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java index 8b68aec..538eaf4 100644 --- a/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java +++ b/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java @@ -50,7 +50,7 @@ import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.rebind.persister.BrooklynPersistenceUtils; import brooklyn.entity.rebind.persister.PersistenceActivityMetrics; import brooklyn.internal.BrooklynFeatureEnablement; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.collections.MutableMap; import brooklyn.util.collections.MutableSet; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java b/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java index 85f4851..4e0f887 100644 --- a/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java +++ b/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java @@ -34,7 +34,7 @@ import org.apache.brooklyn.mementos.BrooklynMementoPersister.LookupContext; import org.apache.brooklyn.policy.Enricher; import org.apache.brooklyn.policy.Policy; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.collections.MutableMap; import com.google.common.collect.Maps; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java b/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java index 98e0586..f093089 100644 --- a/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java +++ b/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java @@ -35,7 +35,7 @@ import org.apache.brooklyn.policy.Enricher; import org.apache.brooklyn.policy.Policy; import brooklyn.catalog.internal.CatalogUtils; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; /** Looks in {@link RebindContext} <i>and</i> {@link ManagementContext} to find entities, locations, etc. */ public class RebindContextLookupContext implements LookupContext { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java b/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java index 5fdb335..f08eb01 100644 --- a/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java +++ b/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java @@ -39,7 +39,7 @@ import org.apache.brooklyn.api.entity.rebind.RebindManager.RebindFailureMode; import org.apache.brooklyn.policy.Enricher; import org.apache.brooklyn.policy.Policy; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.collections.MutableList; import brooklyn.util.collections.QuorumCheck; import brooklyn.util.exceptions.Exceptions; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java b/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java index bd33c1b..d27ea65 100644 --- a/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java +++ b/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java @@ -80,9 +80,9 @@ import brooklyn.entity.rebind.RebindManagerImpl.RebindTracker; import brooklyn.entity.rebind.persister.PersistenceActivityMetrics; import brooklyn.event.feed.AbstractFeed; import brooklyn.internal.BrooklynFeatureEnablement; -import brooklyn.location.Location; -import brooklyn.location.basic.AbstractLocation; -import brooklyn.location.basic.LocationInternal; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.basic.AbstractLocation; +import org.apache.brooklyn.location.basic.LocationInternal; import brooklyn.management.internal.BrooklynObjectManagementMode; import brooklyn.management.internal.BrooklynObjectManagerInternal; import brooklyn.management.internal.EntityManagerInternal; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/TreeUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/TreeUtils.java b/core/src/main/java/brooklyn/entity/rebind/TreeUtils.java index 4574cd6..983bb45 100644 --- a/core/src/main/java/brooklyn/entity/rebind/TreeUtils.java +++ b/core/src/main/java/brooklyn/entity/rebind/TreeUtils.java @@ -23,7 +23,7 @@ import java.util.Collection; import java.util.Deque; import java.util.Set; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import com.google.common.collect.Sets; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java index c65444f..1a5ae1f 100644 --- a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java +++ b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java @@ -58,8 +58,8 @@ import brooklyn.entity.rebind.AbstractBrooklynObjectRebindSupport; import brooklyn.entity.rebind.TreeUtils; import brooklyn.entity.rebind.persister.BrooklynPersistenceUtils; import brooklyn.event.feed.AbstractFeed; -import brooklyn.location.Location; -import brooklyn.location.basic.LocationInternal; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.basic.LocationInternal; import brooklyn.policy.basic.AbstractPolicy; import brooklyn.util.collections.MutableMap; import brooklyn.util.config.ConfigBag; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java index f52f2d2..c874060 100644 --- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java +++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java @@ -48,9 +48,9 @@ import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.rebind.PersistenceExceptionHandlerImpl; import brooklyn.entity.rebind.transformer.CompoundTransformer; import brooklyn.entity.rebind.transformer.CompoundTransformerLoader; -import brooklyn.location.Location; -import brooklyn.location.LocationSpec; -import brooklyn.location.basic.LocalhostMachineProvisioningLocation; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.LocationSpec; +import org.apache.brooklyn.location.basic.LocalhostMachineProvisioningLocation; import brooklyn.management.ha.ManagementPlaneSyncRecordPersisterToObjectStore; import brooklyn.management.internal.LocalLocationManager; import brooklyn.management.internal.ManagementContextInternal; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java b/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java index e78af93..c936526 100644 --- a/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java +++ b/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java @@ -57,7 +57,7 @@ import brooklyn.entity.rebind.dto.BasicPolicyMemento; import brooklyn.entity.rebind.dto.MutableBrooklynMemento; import brooklyn.event.basic.BasicAttributeSensor; import brooklyn.event.basic.BasicConfigKey; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.management.classloading.BrooklynClassLoadingContextSequential; import brooklyn.management.classloading.ClassLoaderFromBrooklynClassLoadingContext; import brooklyn.management.classloading.JavaBrooklynClassLoadingContext; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/trait/Startable.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/trait/Startable.java b/core/src/main/java/brooklyn/entity/trait/Startable.java index 71f25f4..97674eb 100644 --- a/core/src/main/java/brooklyn/entity/trait/Startable.java +++ b/core/src/main/java/brooklyn/entity/trait/Startable.java @@ -32,7 +32,7 @@ import brooklyn.entity.basic.ConfigKeys; import brooklyn.entity.basic.MethodEffector; import brooklyn.entity.effector.EffectorBody; import brooklyn.entity.effector.Effectors; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.config.ConfigBag; import brooklyn.util.task.Tasks; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/entity/trait/StartableMethods.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/trait/StartableMethods.java b/core/src/main/java/brooklyn/entity/trait/StartableMethods.java index b89a018..acfbde3 100644 --- a/core/src/main/java/brooklyn/entity/trait/StartableMethods.java +++ b/core/src/main/java/brooklyn/entity/trait/StartableMethods.java @@ -31,7 +31,7 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityPredicates; import brooklyn.entity.effector.Effectors; -import brooklyn.location.Location; +import org.apache.brooklyn.location.Location; import brooklyn.util.collections.MutableMap; import brooklyn.util.config.ConfigBag; import brooklyn.util.exceptions.CompoundRuntimeException; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/event/basic/PortAttributeSensorAndConfigKey.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/event/basic/PortAttributeSensorAndConfigKey.java b/core/src/main/java/brooklyn/event/basic/PortAttributeSensorAndConfigKey.java index 9611bd5..ccfcc63 100644 --- a/core/src/main/java/brooklyn/event/basic/PortAttributeSensorAndConfigKey.java +++ b/core/src/main/java/brooklyn/event/basic/PortAttributeSensorAndConfigKey.java @@ -30,11 +30,11 @@ import org.slf4j.LoggerFactory; import brooklyn.config.ConfigKey; import brooklyn.entity.basic.BrooklynConfigKeys; import brooklyn.internal.BrooklynInitialization; -import brooklyn.location.Location; -import brooklyn.location.MachineProvisioningLocation; -import brooklyn.location.PortRange; -import brooklyn.location.PortSupplier; -import brooklyn.location.basic.Locations; +import org.apache.brooklyn.location.Location; +import org.apache.brooklyn.location.MachineProvisioningLocation; +import org.apache.brooklyn.location.PortRange; +import org.apache.brooklyn.location.PortSupplier; +import org.apache.brooklyn.location.basic.Locations; import brooklyn.util.flags.TypeCoercions; import brooklyn.util.guava.Maybe; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/event/feed/ssh/SshFeed.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/event/feed/ssh/SshFeed.java b/core/src/main/java/brooklyn/event/feed/ssh/SshFeed.java index f7975d9..200e2fb 100644 --- a/core/src/main/java/brooklyn/event/feed/ssh/SshFeed.java +++ b/core/src/main/java/brooklyn/event/feed/ssh/SshFeed.java @@ -39,9 +39,9 @@ import brooklyn.event.feed.AbstractFeed; import brooklyn.event.feed.AttributePollHandler; import brooklyn.event.feed.DelegatingPollHandler; import brooklyn.event.feed.Poller; -import brooklyn.location.basic.Locations; -import brooklyn.location.basic.Machines; -import brooklyn.location.basic.SshMachineLocation; +import org.apache.brooklyn.location.basic.Locations; +import org.apache.brooklyn.location.basic.Machines; +import org.apache.brooklyn.location.basic.SshMachineLocation; import brooklyn.util.config.ConfigBag; import brooklyn.util.internal.ssh.SshTool; import brooklyn.util.time.Duration; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/event/feed/ssh/SshPollValue.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/event/feed/ssh/SshPollValue.java b/core/src/main/java/brooklyn/event/feed/ssh/SshPollValue.java index 65dad55..7bdde17 100644 --- a/core/src/main/java/brooklyn/event/feed/ssh/SshPollValue.java +++ b/core/src/main/java/brooklyn/event/feed/ssh/SshPollValue.java @@ -20,7 +20,7 @@ package brooklyn.event.feed.ssh; import javax.annotation.Nullable; -import brooklyn.location.basic.SshMachineLocation; +import org.apache.brooklyn.location.basic.SshMachineLocation; public class SshPollValue { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/event/feed/windows/WindowsPerformanceCounterFeed.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/event/feed/windows/WindowsPerformanceCounterFeed.java b/core/src/main/java/brooklyn/event/feed/windows/WindowsPerformanceCounterFeed.java index 04f87ba..040d887 100644 --- a/core/src/main/java/brooklyn/event/feed/windows/WindowsPerformanceCounterFeed.java +++ b/core/src/main/java/brooklyn/event/feed/windows/WindowsPerformanceCounterFeed.java @@ -49,7 +49,7 @@ import brooklyn.event.basic.Sensors; import brooklyn.event.feed.AbstractFeed; import brooklyn.event.feed.PollHandler; import brooklyn.event.feed.Poller; -import brooklyn.location.basic.WinRmMachineLocation; +import org.apache.brooklyn.location.basic.WinRmMachineLocation; import brooklyn.util.exceptions.Exceptions; import brooklyn.util.flags.TypeCoercions; import brooklyn.util.time.Duration; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/internal/BrooklynInitialization.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/internal/BrooklynInitialization.java b/core/src/main/java/brooklyn/internal/BrooklynInitialization.java index 83d8d9d..70eea9f 100644 --- a/core/src/main/java/brooklyn/internal/BrooklynInitialization.java +++ b/core/src/main/java/brooklyn/internal/BrooklynInitialization.java @@ -20,7 +20,7 @@ package brooklyn.internal; import java.util.concurrent.atomic.AtomicBoolean; -import brooklyn.location.basic.PortRanges; +import org.apache.brooklyn.location.basic.PortRanges; import brooklyn.util.crypto.SecureKeys; import brooklyn.util.flags.TypeCoercions; import brooklyn.util.net.Networking; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e2c57058/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java b/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java deleted file mode 100644 index 9bf0f9b..0000000 --- a/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.location.access; - -import java.util.Collection; - -import org.apache.brooklyn.api.entity.Entity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import brooklyn.config.ConfigKey; -import brooklyn.entity.basic.Attributes; -import brooklyn.event.basic.BasicConfigKey; -import brooklyn.location.Location; -import brooklyn.location.MachineLocation; -import brooklyn.location.basic.Machines; -import brooklyn.location.basic.SshMachineLocation; -import brooklyn.location.basic.SupportsPortForwarding; -import brooklyn.util.exceptions.Exceptions; -import brooklyn.util.guava.Maybe; -import brooklyn.util.net.Cidr; -import brooklyn.util.task.DynamicTasks; -import brooklyn.util.task.Tasks; -import brooklyn.util.task.ssh.SshTasks; -import brooklyn.util.task.system.ProcessTaskWrapper; -import brooklyn.util.text.Strings; - -import com.google.common.base.Supplier; -import com.google.common.net.HostAndPort; - -public class BrooklynAccessUtils { - - private static final Logger log = LoggerFactory.getLogger(BrooklynAccessUtils.class); - - public static final ConfigKey<PortForwardManager> PORT_FORWARDING_MANAGER = new BasicConfigKey<PortForwardManager>( - PortForwardManager.class, "brooklyn.portforwarding.manager", "A port-forwarding manager to use at an entity " - + "or a location, where supported; note this should normally be a serializable client instance to prevent " - + "the creation of multiple disconnected instances via config duplication"); - - public static final ConfigKey<Cidr> MANAGEMENT_ACCESS_CIDR = new BasicConfigKey<Cidr>( - Cidr.class, "brooklyn.portforwarding.management.cidr", "CIDR to enable by default for port-forwarding for management", - null); // TODO should be a list - - public static HostAndPort getBrooklynAccessibleAddress(Entity entity, int port) { - String host; - - // look up port forwarding - PortForwardManager pfw = entity.getConfig(PORT_FORWARDING_MANAGER); - if (pfw!=null) { - Collection<Location> ll = entity.getLocations(); - Maybe<SupportsPortForwarding> machine = Machines.findUniqueElement(ll, SupportsPortForwarding.class); - if (machine.isPresent()) { - synchronized (BrooklynAccessUtils.class) { - // TODO finer-grained synchronization - - HostAndPort hp = pfw.lookup((MachineLocation)machine.get(), port); - if (hp!=null) return hp; - - Location l = (Location) machine.get(); - if (l instanceof SupportsPortForwarding) { - Cidr source = entity.getConfig(MANAGEMENT_ACCESS_CIDR); - if (source!=null) { - log.debug("BrooklynAccessUtils requesting new port-forwarding rule to access "+port+" on "+entity+" (at "+l+", enabled for "+source+")"); - // TODO discuss, is this the best way to do it - // (will probably _create_ the port forwarding rule!) - hp = ((SupportsPortForwarding) l).getSocketEndpointFor(source, port); - if (hp!=null) return hp; - } else { - log.warn("No "+MANAGEMENT_ACCESS_CIDR.getName()+" configured for "+entity+", so cannot forward port "+port+" " + - "even though "+PORT_FORWARDING_MANAGER.getName()+" was supplied"); - } - } - } - } - } - - host = entity.getAttribute(Attributes.HOSTNAME); - if (host!=null) return HostAndPort.fromParts(host, port); - - throw new IllegalStateException("Cannot find way to access port "+port+" on "+entity+" from Brooklyn (no host.name)"); - } - - /** attempts to resolve hostnameTarget from origin - * @return null if it definitively can't be resolved, - * best-effort IP address if possible, or blank if we could not run ssh or make sense of the output */ - public static String getResolvedAddress(Entity entity, SshMachineLocation origin, String hostnameTarget) { - ProcessTaskWrapper<Integer> task = SshTasks.newSshExecTaskFactory(origin, "ping -c 1 -t 1 "+hostnameTarget) - .summary("checking resolution of "+hostnameTarget).allowingNonZeroExitCode().newTask(); - DynamicTasks.queueIfPossible(task).orSubmitAndBlock(entity).asTask().blockUntilEnded(); - if (task.asTask().isError()) { - log.warn("ping could not be run, at "+entity+" / "+origin+": "+Tasks.getError(task.asTask())); - return ""; - } - if (task.getExitCode()==null || task.getExitCode()!=0) { - if (task.getExitCode()!=null && task.getExitCode()<10) { - // small number means ping failed to resolve or ping the hostname - log.debug("not able to resolve "+hostnameTarget+" from "+origin+" for "+entity+" because exit code was "+task.getExitCode()); - return null; - } - // large number means ping probably did not run - log.warn("ping not run as expected, at "+entity+" / "+origin+" (code "+task.getExitCode()+"):\n"+task.getStdout().trim()+" --- "+task.getStderr().trim()); - return ""; - } - String out = task.getStdout(); - try { - String line1 = Strings.getFirstLine(out); - String ip = Strings.getFragmentBetween(line1, "(", ")"); - if (Strings.isNonBlank(ip)) - return ip; - } catch (Exception e) { - Exceptions.propagateIfFatal(e); - /* ignore non-parseable output */ - } - if (out.contains("127.0.0.1")) return "127.0.0.1"; - return ""; - } - - public static Supplier<String> resolvedAddressSupplier(final Entity entity, final SshMachineLocation origin, final String hostnameTarget) { - return new Supplier<String>() { - @Override - public String get() { - return getResolvedAddress(entity, origin, hostnameTarget); - } - }; - } - -}
