You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/10/19 03:00:00 UTC
[13/16] git commit: code review comments addressed, tests all passing,
hurrah
code review comments addressed, tests all passing, hurrah
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/7ccf3ad3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/7ccf3ad3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/7ccf3ad3
Branch: refs/heads/master
Commit: 7ccf3ad38aa89bbbb1bc3d453517e5236d659888
Parents: c0d0775
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sat Oct 18 13:52:38 2014 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Sat Oct 18 19:33:56 2014 +0100
----------------------------------------------------------------------
.../entity/rebind/BasicEntityRebindSupport.java | 3 ++-
.../location/basic/SshMachineLocation.java | 5 ----
.../internal/LocalLocationManager.java | 14 +++++-----
.../usage/LocationUsageTrackingTest.java | 6 ++++-
.../src/main/webapp/assets/tpl/apps/param.html | 2 +-
.../main/java/brooklyn/util/net/Networking.java | 27 ++++++++++++--------
6 files changed, 31 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ccf3ad3/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 02ba317..5018320 100644
--- a/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java
+++ b/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java
@@ -161,7 +161,8 @@ public class BasicEntityRebindSupport extends AbstractBrooklynObjectRebindSuppor
}
try {
- // XXX
+ // TODO don't start feeds here necessarily, if we're in RO mode for instance
+ // (should refactor enrichers and policies and apply to them)
feed.start();
} catch (Exception e) {
rebindContext.getExceptionHandler().onRebindFailed(BrooklynObjectType.ENTITY, entity, e);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ccf3ad3/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
index 2bf81f9..e12348e 100644
--- a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
@@ -222,11 +222,6 @@ public class SshMachineLocation extends AbstractLocation implements MachineLocat
usedPorts = (usedPorts != null) ? Sets.newLinkedHashSet(usedPorts) : Sets.<Integer>newLinkedHashSet();
}
- @Override
- public void init() {
- super.init();
- }
-
private final transient Object poolCacheMutex = new Object();
private LoadingCache<Map<String, ?>, Pool<SshTool>> getSshPoolCache() {
synchronized (poolCacheMutex) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ccf3ad3/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java b/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
index f1da114..e48f57e 100644
--- a/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
+++ b/core/src/main/java/brooklyn/management/internal/LocalLocationManager.java
@@ -262,7 +262,7 @@ public class LocalLocationManager implements LocationManagerInternal {
if (hasBeenReplaced) {
// we are unmanaging an old instance after having replaced it
- unmanageNonRecursiveOnlyClearItsFields(loc, mode);
+ unmanageNonRecursiveClearItsFields(loc, mode);
if (mode==ManagementTransitionMode.REBINDING_NO_LONGER_PRIMARY) {
// when migrating away, these all need to be called
@@ -276,9 +276,10 @@ public class LocalLocationManager implements LocationManagerInternal {
} else if (mode==ManagementTransitionMode.REBINDING_DESTROYED || mode==ManagementTransitionMode.REBINDING_NO_LONGER_PRIMARY) {
// we are unmanaging an instance whose primary management is elsewhere (either we were secondary, or we are being demoted)
- unmanageNonRecursive(loc, mode);
+ unmanageNonRecursiveRemoveFromRecords(loc, mode);
managementContext.getRebindManager().getChangeListener().onUnmanaged(loc);
if (managementContext.gc != null) managementContext.gc.onUnmanaged(loc);
+ unmanageNonRecursiveClearItsFields(loc, mode);
} else if (mode==ManagementTransitionMode.DESTROYING) {
// we are unmanaging an instance either because it is being destroyed (primary),
@@ -288,7 +289,7 @@ public class LocalLocationManager implements LocationManagerInternal {
// Need to store all child entities as onManagementStopping removes a child from the parent entity
recursively(loc, new Predicate<AbstractLocation>() { public boolean apply(AbstractLocation it) {
if (shouldSkipUnmanagement(it)) return false;
- boolean result = unmanageNonRecursive(it, mode);
+ boolean result = unmanageNonRecursiveRemoveFromRecords(it, mode);
if (result) {
ManagementTransitionMode mode = getLastManagementTransitionMode(it.getId());
if (mode==null) {
@@ -300,6 +301,7 @@ public class LocalLocationManager implements LocationManagerInternal {
if (!mode.isReadOnly()) recordLocationEvent(it, Lifecycle.DESTROYED);
if (managementContext.gc != null) managementContext.gc.onUnmanaged(it);
}
+ unmanageNonRecursiveClearItsFields(loc, mode);
return result;
} });
@@ -369,7 +371,7 @@ public class LocalLocationManager implements LocationManagerInternal {
return true;
}
- private synchronized void unmanageNonRecursiveOnlyClearItsFields(Location loc, ManagementTransitionMode mode) {
+ private synchronized void unmanageNonRecursiveClearItsFields(Location loc, ManagementTransitionMode mode) {
if (mode==ManagementTransitionMode.DESTROYING) {
((AbstractLocation)loc).setParent(null, true);
} else {
@@ -384,9 +386,7 @@ public class LocalLocationManager implements LocationManagerInternal {
* Should ensure that the location is no longer managed anywhere, remove from all lists.
* Returns true if the location has been removed from management; if it was not previously managed (anything else throws exception)
*/
- private synchronized boolean unmanageNonRecursive(Location loc, ManagementTransitionMode mode) {
- unmanageNonRecursiveOnlyClearItsFields(loc, mode);
-
+ private synchronized boolean unmanageNonRecursiveRemoveFromRecords(Location loc, ManagementTransitionMode mode) {
Object old = locationsById.remove(loc.getId());
locationTypes.remove(loc.getId());
locationModesById.remove(loc.getId());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ccf3ad3/software/base/src/test/java/brooklyn/management/usage/LocationUsageTrackingTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/management/usage/LocationUsageTrackingTest.java b/software/base/src/test/java/brooklyn/management/usage/LocationUsageTrackingTest.java
index 1b12ee4..c390b04 100644
--- a/software/base/src/test/java/brooklyn/management/usage/LocationUsageTrackingTest.java
+++ b/software/base/src/test/java/brooklyn/management/usage/LocationUsageTrackingTest.java
@@ -37,6 +37,8 @@ import brooklyn.location.NoMachinesAvailableException;
import brooklyn.location.basic.LocalhostMachineProvisioningLocation;
import brooklyn.location.basic.SshMachineLocation;
import brooklyn.management.usage.LocationUsage.LocationEvent;
+import brooklyn.util.time.Duration;
+import brooklyn.util.time.Time;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
@@ -86,7 +88,7 @@ public class LocationUsageTrackingTest extends BrooklynAppUnitTestSupport {
long preStop = System.currentTimeMillis();
app.stop();
long postStop = System.currentTimeMillis();
-
+
Set<LocationUsage> usages2 = mgmt.getUsageManager().getLocationUsage(Predicates.alwaysTrue());
LocationUsage usage2 = Iterables.getOnlyElement(usages2);
List<LocationEvent> events2 = usage2.getEvents();
@@ -102,6 +104,8 @@ public class LocationUsageTrackingTest extends BrooklynAppUnitTestSupport {
}
public static class DynamicLocalhostMachineProvisioningLocation extends LocalhostMachineProvisioningLocation {
+ private static final long serialVersionUID = 4822009936654077946L;
+
@Override
public SshMachineLocation obtain(Map<?, ?> flags) throws NoMachinesAvailableException {
System.out.println("called DynamicLocalhostMachineProvisioningLocation.obtain");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ccf3ad3/usage/jsgui/src/main/webapp/assets/tpl/apps/param.html
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/tpl/apps/param.html b/usage/jsgui/src/main/webapp/assets/tpl/apps/param.html
index 78ac02b..8a25271 100644
--- a/usage/jsgui/src/main/webapp/assets/tpl/apps/param.html
+++ b/usage/jsgui/src/main/webapp/assets/tpl/apps/param.html
@@ -28,7 +28,7 @@ under the License.
<td><div id="selector-container" class="input-medium param-value"></div></td>
<% } else { %>
<td><!-- use 1 line textarea so it can be resized -->
- <textarea class="input-medium param-value" style="height: 18px;"><%= _.escape(defaultValue) %></textarea>
+ <textarea class="input-medium param-value" style="height: 18px;"><%- defaultValue %></textarea>
</td>
<% } %>
</tr>
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ccf3ad3/utils/common/src/main/java/brooklyn/util/net/Networking.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/net/Networking.java b/utils/common/src/main/java/brooklyn/util/net/Networking.java
index 98cdb85..67dd1c6 100644
--- a/utils/common/src/main/java/brooklyn/util/net/Networking.java
+++ b/utils/common/src/main/java/brooklyn/util/net/Networking.java
@@ -65,17 +65,8 @@ public class Networking {
public static InetAddress ANY_NIC = getInetAddressWithFixedName(0, 0, 0, 0);
public static InetAddress LOOPBACK = getInetAddressWithFixedName(127, 0, 0, 1);
- private static boolean loggedLocalhostNotAvailable = false;
public static boolean isPortAvailable(int port) {
- try {
- return isPortAvailable(InetAddress.getByName("localhost"), port);
- } catch (UnknownHostException e) {
- if (!loggedLocalhostNotAvailable) {
- loggedLocalhostNotAvailable = true;
- log.warn("localhost unavailable during port availability check for "+port+": "+e+"; ignoring, but this may be a sign of network misconfiguration");
- }
- return isPortAvailable(null, port);
- }
+ return isPortAvailable(ANY_NIC, port);
}
public static boolean isPortAvailable(InetAddress localAddress, int port) {
if (port < MIN_PORT_NUMBER || port > MAX_PORT_NUMBER) {
@@ -120,7 +111,21 @@ public class Networking {
if (localAddress==null || ANY_NIC.equals(localAddress)) {
// sometimes 0.0.0.0 can be bound to even if 127.0.0.1 has the port as in use; check 127.0.0.1 if 0.0.0.0 was requested
- return isPortAvailable(LOOPBACK, port);
+ Enumeration<NetworkInterface> nis = null;
+ try {
+ nis = NetworkInterface.getNetworkInterfaces();
+ } catch (SocketException e) {
+ throw Exceptions.propagate(e);
+ }
+ while (nis.hasMoreElements()) {
+ NetworkInterface ni = nis.nextElement();
+ Enumeration<InetAddress> as = ni.getInetAddresses();
+ while (as.hasMoreElements()) {
+ InetAddress a = as.nextElement();
+ if (!isPortAvailable(a, port))
+ return false;
+ }
+ }
}
return true;