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 2015/05/07 12:57:21 UTC

[6/7] incubator-brooklyn git commit: address code review for startup info

address code review for startup info

JS masterUri fix, HA check cleanups, removing unneeded classes, and catch catalog error


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/7556c582
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/7556c582
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/7556c582

Branch: refs/heads/master
Commit: 7556c582ae253a655eb76abba92b75ac811a77b3
Parents: 7d0f1a0
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed May 6 10:48:16 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed May 6 10:48:16 2015 +0100

----------------------------------------------------------------------
 .../entity/brooklynnode/BrooklynNodeImpl.java   |   4 +
 .../BrooklynNodeIntegrationTest.java            |  23 ++-
 .../assets/js/model/server-extended-status.js   |  10 +-
 .../rest/filter/ServerStatusCheckFilter.java    | 120 -----------
 .../rest/resources/CatalogResource.java         |  17 +-
 .../test/java/brooklyn/rest/HaHotCheckTest.java |   4 +-
 .../brooklyn/rest/HaMasterCheckFilterTest.java  |   3 +-
 .../rest/testing/BrooklynRestResourceTest.java  |   2 +-
 .../mocks/HighAvailabilityManagerStub.java      | 121 -----------
 .../testing/mocks/ManagementContextMock.java    | 206 -------------------
 10 files changed, 47 insertions(+), 463 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java
index d4b4992..9fd34eb 100644
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java
@@ -466,6 +466,10 @@ public class BrooklynNodeImpl extends SoftwareProcessImpl implements BrooklynNod
                     .baseUri(webConsoleUri)
                     .credentialsIfNotNull(getConfig(MANAGEMENT_USER), getConfig(MANAGEMENT_PASSWORD))
                     .poll(new HttpPollConfig<Boolean>(WEB_CONSOLE_ACCESSIBLE)
+                            // TODO `BrooklynNode` shouldn't report `SERVICE_UP` until `/v1/server/healthy` returns true;
+                            // but this should wait until v0.8.0 as we'll need managed nodes to implement `/v1/server/healthy` (added May 2015);
+                            // when that is added BrooklynNodeIntegrationTest.waitForApps can remove the 403 check, it should require 200 always.
+                            // .suburl("/v1/server/healthy")  then check: responseTextEquals("true")
                             .onSuccess(HttpValueFunctions.responseCodeEquals(200))
                             .setOnFailureOrException(false))
                     .poll(new HttpPollConfig<ManagementNodeState>(MANAGEMENT_NODE_STATE)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java b/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
index 717eb68..ff7b5fc 100644
--- a/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
+++ b/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
@@ -347,23 +347,31 @@ services:
         log.info("started "+app+" containing "+brooklynNode+" for "+JavaClassNames.niceClassAndMethod());
 
         URI webConsoleUri = brooklynNode.getAttribute(BrooklynNode.WEB_CONSOLE_URI);
+        waitForApps(webConsoleUri.toString());
         String apps = HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/applications");
         List<String> appType = parseJsonList(apps, ImmutableList.of("spec", "type"), String.class);
         assertEquals(appType, ImmutableList.of(BasicApplication.class.getName()));
     }
 
+    protected static void waitForApps(String webConsoleUri) {
+        HttpTestUtils.assertHttpStatusCodeEquals(webConsoleUri+"/v1/applications", 200, 403);
+        HttpTestUtils.assertHttpStatusCodeEventuallyEquals(webConsoleUri+"/v1/applications", 200);
+    }
+
     @Test(groups="Integration")
     public void testStartsAppViaEffector() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest());
         app.start(locs);
         log.info("started "+app+" containing "+brooklynNode+" for "+JavaClassNames.niceClassAndMethod());
         
+        // note there is also a test for this in DeployApplication
+        final URI webConsoleUri = brooklynNode.getAttribute(BrooklynNode.WEB_CONSOLE_URI);
+        waitForApps(webConsoleUri.toString());
+
         final String id = brooklynNode.invoke(BrooklynNode.DEPLOY_BLUEPRINT, ConfigBag.newInstance()
             .configure(DeployBlueprintEffector.BLUEPRINT_TYPE, BasicApplication.class.getName())
             .getAllConfig()).get();
         
-        // note there is also a test for this in DeployApplication
-        final URI webConsoleUri = brooklynNode.getAttribute(BrooklynNode.WEB_CONSOLE_URI);
         String apps = HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/applications");
         List<String> appType = parseJsonList(apps, ImmutableList.of("spec", "type"), String.class);
         assertEquals(appType, ImmutableList.of(BasicApplication.class.getName()));
@@ -389,6 +397,7 @@ services:
         log.info("started "+app+" containing "+brooklynNode+" for "+JavaClassNames.niceClassAndMethod());
 
         URI webConsoleUri = brooklynNode.getAttribute(BrooklynNode.WEB_CONSOLE_URI);
+        waitForApps(webConsoleUri.toString());
 
         // Check that "mynamedloc" has been picked up from the brooklyn.properties
         String locsContent = HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/locations");
@@ -486,6 +495,8 @@ services:
         File pidFile = new File(getDriver(brooklynNode).getPidFile());
         URI webConsoleUri = brooklynNode.getAttribute(BrooklynNode.WEB_CONSOLE_URI);
 
+        waitForApps(webConsoleUri.toString());
+
         // Stop just the process; will not have unmanaged entity unless machine was being terminated 
         brooklynNode.invoke(BrooklynNode.STOP, ImmutableMap.<String, Object>of(
                 BrooklynNode.StopSoftwareParameters.STOP_MACHINE_MODE.getName(), StopMode.NEVER,
@@ -512,7 +523,9 @@ services:
 
         // Note can't use driver.isRunning to check shutdown; can't invoke scripts on an unmanaged entity
         EntityTestUtils.assertAttributeEquals(brooklynNode, BrooklynNode.SERVICE_UP, false);
-        assertFalse(Entities.isManaged(brooklynNode));
+        // previously we unmanaged the node on stop, but that behaviour has been removed (noticed May 2015)
+        // TODO remove this after a couple of months, for awareness/confirmation
+//        assertFalse(Entities.isManaged(brooklynNode));
         assertFalse(isPidRunning(pidFile), "pid in "+pidFile+" still running");
     }
 
@@ -548,11 +561,13 @@ services:
 
         EntityTestUtils.assertAttributeEqualsEventually(brooklynNode, BrooklynNode.SERVICE_UP, true);
 
+        String baseUrl = brooklynNode.getAttribute(BrooklynNode.WEB_CONSOLE_URI).toString();
+        waitForApps(baseUrl);
+        
         final String id = brooklynNode.invoke(BrooklynNode.DEPLOY_BLUEPRINT, ConfigBag.newInstance()
                 .configure(DeployBlueprintEffector.BLUEPRINT_TYPE, BasicApplication.class.getName())
                 .getAllConfig()).get();
 
-        String baseUrl = brooklynNode.getAttribute(BrooklynNode.WEB_CONSOLE_URI).toString();
         String entityUrl = Urls.mergePaths(baseUrl, "v1/applications/", id, "entities", id);
         
         Entity mirror = brooklynNode.addChild(EntitySpec.create(BrooklynEntityMirror.class)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/jsgui/src/main/webapp/assets/js/model/server-extended-status.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/model/server-extended-status.js b/usage/jsgui/src/main/webapp/assets/js/model/server-extended-status.js
index 2f5ccb3..e774294 100644
--- a/usage/jsgui/src/main/webapp/assets/js/model/server-extended-status.js
+++ b/usage/jsgui/src/main/webapp/assets/js/model/server-extended-status.js
@@ -73,13 +73,9 @@ define(["backbone", "brooklyn", "view/viewutils"], function (Backbone, Brooklyn,
         getMasterUri: function() {
             // Might be undefined if first fetch hasn't completed
             ha = this.get("ha") || {};
-            states = ha.states || {};
-            if (!states) return null;
-            
-            var nodes = this.get("nodes") || {};
-            var master = nodes[this.get("masterId")];
-            // defensive, if this happens something more serious has gone wrong!
-            if (!master) {
+            nodes = ha.nodes || {};
+            master = nodes[ha.masterId];
+            if (!master || master.status != "MASTER") {
                 return null;
             } else {
                 return master.nodeUri;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/rest-server/src/main/java/brooklyn/rest/filter/ServerStatusCheckFilter.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/main/java/brooklyn/rest/filter/ServerStatusCheckFilter.java b/usage/rest-server/src/main/java/brooklyn/rest/filter/ServerStatusCheckFilter.java
deleted file mode 100644
index d5c30a3..0000000
--- a/usage/rest-server/src/main/java/brooklyn/rest/filter/ServerStatusCheckFilter.java
+++ /dev/null
@@ -1,120 +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.rest.filter;
-
-import java.io.IOException;
-import java.util.Set;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Response;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import brooklyn.config.BrooklynServiceAttributes;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.ha.ManagementNodeState;
-import brooklyn.rest.domain.ApiError;
-import brooklyn.rest.util.WebResourceUtils;
-
-import com.google.common.collect.Sets;
-
-/**
- * Checks that the request is appropriate given the high availability status of the server.
- *
- * @see brooklyn.management.ha.ManagementNodeState
- */
-public class ServerStatusCheckFilter implements Filter {
-
-    private static final Logger log = LoggerFactory.getLogger(ServerStatusCheckFilter.class);
-    
-    public static final String SKIP_CHECK_HEADER = "Brooklyn-Allow-Non-Master-Access";
-    private static final Set<String> SAFE_STANDBY_METHODS = Sets.newHashSet("GET", "HEAD");
-
-    protected ServletContext servletContext;
-    protected ManagementContext mgmt;
-
-    @Override
-    public void init(FilterConfig config) throws ServletException {
-        servletContext = config.getServletContext();
-        mgmt = (ManagementContext) servletContext.getAttribute(BrooklynServiceAttributes.BROOKLYN_MANAGEMENT_CONTEXT);
-    }
-
-    private String lookForProblem(ServletRequest request) {
-        if (isMasterRequiredForRequest(request)) {
-            if (mgmt==null) return "no management context available";
-            if (!mgmt.isRunning()) return "server no longer running";
-            if (!mgmt.isStartupComplete()) return "server not in required startup-completed state";
-            if (!isMaster()) return "server not in required HA master state";
-        }
-        return null;
-    }
-    
-    @Override
-    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-        String problem = lookForProblem(request);
-        if (problem!=null) {
-            log.warn("Disallowing request as "+problem+"/"+request.getParameterMap()+" (caller should set '"+SKIP_CHECK_HEADER+"' to force)");
-            WebResourceUtils.applyJsonResponse(servletContext, ApiError.builder()
-                .message("This request is only permitted against an active master Brooklyn server")
-                .errorCode(Response.Status.FORBIDDEN).build().asJsonResponse(), (HttpServletResponse)response);
-        } else {
-            chain.doFilter(request, response);
-        }
-    }
-
-    @Override
-    public void destroy() {
-    }
-
-    private boolean isMaster() {
-        return ManagementNodeState.MASTER.equals(mgmt.getHighAvailabilityManager().getNodeState());
-    }
-
-    private boolean isMasterRequiredForRequest(ServletRequest request) {
-        if (request instanceof HttpServletRequest) {
-            HttpServletRequest httpRequest = (HttpServletRequest) request;
-            String checkOverridden = httpRequest.getHeader(SKIP_CHECK_HEADER);
-            if ("true".equalsIgnoreCase(checkOverridden)) return false;
-            
-            String method = httpRequest.getMethod().toUpperCase();
-            // gets usually okay
-            if (SAFE_STANDBY_METHODS.contains(method)) return false;
-            
-            // explicitly allow calls to shutdown
-            // (if stopAllApps is specified, the method itself will fail; but we do not want to consume parameters here, that breaks things!)
-            // TODO combine with HaHotCheckResourceFilter and use an annotation HaAnyStateAllowed or similar
-            if ("/v1/server/shutdown".equals(httpRequest.getRequestURI())) return false;
-            
-            // master required for everything else
-            return true;
-        }
-        // previously non-HttpServletRequests were allowed but I don't think they should be
-        return true;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java b/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java
index a3eb161..a93f9a0 100644
--- a/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java
+++ b/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java
@@ -21,6 +21,7 @@ package brooklyn.rest.resources;
 import java.io.InputStream;
 import java.net.URI;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -454,8 +455,20 @@ public class CatalogResource extends AbstractBrooklynRestResource implements Cat
     @SuppressWarnings("unchecked")
     private static <T> List<T> castList(List<? super T> list, Class<T> elementType) {
         List<T> result = Lists.newArrayList();
-        for (Object element : list) {
-            result.add((T) element);
+        Iterator<? super T> li = list.iterator();
+        while (li.hasNext()) {
+            try {
+                result.add((T) li.next());
+            } catch (Throwable throwable) {
+                if (throwable instanceof NoClassDefFoundError) {
+                    // happens if class cannot be loaded for any reason during transformation - don't treat as fatal
+                } else {
+                    Exceptions.propagateIfFatal(throwable);
+                }
+                
+                // item cannot be transformed; we will have logged a warning earlier
+                log.debug("Ignoring invalid catalog item: "+throwable);
+            }
         }
         return result;
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/rest-server/src/test/java/brooklyn/rest/HaHotCheckTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/HaHotCheckTest.java b/usage/rest-server/src/test/java/brooklyn/rest/HaHotCheckTest.java
index e6ca1d1..7ce6a97 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/HaHotCheckTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/HaHotCheckTest.java
@@ -43,10 +43,12 @@ import com.sun.jersey.api.core.ResourceConfig;
 
 public class HaHotCheckTest extends BrooklynRestResourceTest {
 
+    // setup and teardown before/after each method
+    
     @BeforeMethod(alwaysRun = true)
     public void setUp() throws Exception { super.setUp(); }
 
-    @AfterMethod(alwaysRun = false)
+    @AfterMethod(alwaysRun = true)
     public void tearDown() throws Exception { super.tearDown(); }
     
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/rest-server/src/test/java/brooklyn/rest/HaMasterCheckFilterTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/HaMasterCheckFilterTest.java b/usage/rest-server/src/test/java/brooklyn/rest/HaMasterCheckFilterTest.java
index 671a6b2..27d8d6c 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/HaMasterCheckFilterTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/HaMasterCheckFilterTest.java
@@ -64,6 +64,7 @@ public class HaMasterCheckFilterTest extends BrooklynRestApiLauncherTestFixture
 
     @AfterMethod(alwaysRun=true)
     public void tearDown() throws Exception {
+System.err.println("TEAR DOWN");
         server.stop();
         Entities.destroyAll(writeMgmt);
         Entities.destroyAll(readMgmt);
@@ -151,7 +152,7 @@ public class HaMasterCheckFilterTest extends BrooklynRestApiLauncherTestFixture
 
         writeMgmt = createManagementContext(mementoDir, writeMode);
         appId = createApp(writeMgmt);
-        writeMgmt.getRebindManager().getPersister().waitForWritesCompleted(TIMEOUT);
+        writeMgmt.getRebindManager().waitForPendingComplete(TIMEOUT);
 
         if (readMode == HighAvailabilityMode.DISABLED) {
             //no HA, one node only

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java
index 485d5a8..42a622a 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java
@@ -60,7 +60,7 @@ public abstract class BrooklynRestResourceTest extends BrooklynRestApiTest {
         setUpJersey();
     }
 
-    @AfterClass(alwaysRun = false)
+    @AfterClass(alwaysRun = true)
     public void tearDown() throws Exception {
         tearDownJersey();
         super.tearDown();

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/HighAvailabilityManagerStub.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/HighAvailabilityManagerStub.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/HighAvailabilityManagerStub.java
deleted file mode 100644
index 98fb8d5..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/HighAvailabilityManagerStub.java
+++ /dev/null
@@ -1,121 +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.rest.testing.mocks;
-
-import java.util.Map;
-
-import brooklyn.management.ha.HighAvailabilityManager;
-import brooklyn.management.ha.HighAvailabilityMode;
-import brooklyn.management.ha.ManagementNodeState;
-import brooklyn.management.ha.ManagementPlaneSyncRecord;
-import brooklyn.management.ha.ManagementPlaneSyncRecordPersister;
-
-public class HighAvailabilityManagerStub implements HighAvailabilityManager {
-
-    private ManagementNodeState state = ManagementNodeState.MASTER;
-
-    public void setState(ManagementNodeState state) {
-        this.state = state;
-    }
-
-    private static RuntimeException fail() {
-        throw new UnsupportedOperationException("Mocked method not implemented");
-    }
-
-    @Override
-    public boolean isRunning() {
-        return state != ManagementNodeState.TERMINATED;
-    }
-
-    @Override
-    public ManagementNodeState getNodeState() {
-        return state;
-    }
-
-    @Override
-    public long getLastStateChange() {
-        return 0;
-    }
-
-    @Override
-    public HighAvailabilityManager setPersister(ManagementPlaneSyncRecordPersister persister) {
-        throw fail();
-    }
-
-    @Override
-    public void disabled() {
-        throw fail();
-    }
-
-    @Override
-    public void start(HighAvailabilityMode startMode) {
-        throw fail();
-    }
-
-    @Override
-    public void stop() {
-        throw fail();
-    }
-
-    @Override
-    public void changeMode(HighAvailabilityMode mode) {
-        throw fail();
-    }
-
-    @Override
-    public void setPriority(long priority) {
-        throw fail();
-    }
-
-    @Override
-    public long getPriority() {
-        throw fail();
-    }
-
-    @Override
-    public void publishClearNonMaster() {
-        throw fail();
-    }
-
-    @Override
-    public ManagementPlaneSyncRecord getLastManagementPlaneSyncRecord() {
-        throw fail();
-    }
-
-    @Override
-    public ManagementPlaneSyncRecord getManagementPlaneSyncState() {
-        throw fail();
-    }
-
-    @Override
-    public ManagementPlaneSyncRecord loadManagementPlaneSyncRecord(boolean useLocalKnowledgeForThisNode) {
-        throw fail();
-    }
-
-    @Override
-    public ManagementPlaneSyncRecordPersister getPersister() {
-        throw fail();
-    }
-
-    @Override
-    public Map<String, Object> getMetrics() {
-        throw fail();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7556c582/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/ManagementContextMock.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/ManagementContextMock.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/ManagementContextMock.java
deleted file mode 100644
index 423743f..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/ManagementContextMock.java
+++ /dev/null
@@ -1,206 +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.rest.testing.mocks;
-
-import java.net.URI;
-import java.util.Collection;
-
-import brooklyn.basic.BrooklynObject;
-import brooklyn.catalog.BrooklynCatalog;
-import brooklyn.config.StringConfigMap;
-import brooklyn.entity.Application;
-import brooklyn.entity.Entity;
-import brooklyn.entity.drivers.EntityDriverManager;
-import brooklyn.entity.drivers.downloads.DownloadResolverManager;
-import brooklyn.entity.rebind.RebindManager;
-import brooklyn.location.LocationRegistry;
-import brooklyn.management.AccessController;
-import brooklyn.management.EntityManager;
-import brooklyn.management.ExecutionContext;
-import brooklyn.management.ExecutionManager;
-import brooklyn.management.LocationManager;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.SubscriptionContext;
-import brooklyn.management.SubscriptionManager;
-import brooklyn.management.entitlement.EntitlementManager;
-import brooklyn.management.ha.HighAvailabilityManager;
-import brooklyn.management.ha.ManagementNodeState;
-import brooklyn.util.guava.Maybe;
-import brooklyn.util.javalang.JavaClassNames;
-
-public class ManagementContextMock implements ManagementContext {
-    private Boolean running;
-    private Boolean startupComplete;
-    private HighAvailabilityManagerStub haMock = new HighAvailabilityManagerStub();
-
-    public void setRunning(Boolean running) {
-        this.running = running;
-    }
-    public void setStartupComplete(Boolean startupComplete) {
-        this.startupComplete = startupComplete;
-    }
-    
-    public void setState(ManagementNodeState state) {
-        haMock.setState(state);
-    }
-
-    private static RuntimeException fail() {
-        throw new UnsupportedOperationException("Mocked method not implemented - "+JavaClassNames.callerNiceClassAndMethod(1));
-    }
-
-    @Override
-    public HighAvailabilityManager getHighAvailabilityManager() {
-        return haMock;
-    }
-
-    @Override
-    public String getManagementPlaneId() {
-        throw fail();
-    }
-
-    @Override
-    public String getManagementNodeId() {
-        throw fail();
-    }
-
-    @Override
-    public Maybe<URI> getManagementNodeUri() {
-        throw fail();
-    }
-
-    @Override
-    public Collection<Application> getApplications() {
-        throw fail();
-    }
-
-    @Override
-    public EntityManager getEntityManager() {
-        throw fail();
-    }
-
-    @Override
-    public ExecutionManager getExecutionManager() {
-        throw fail();
-    }
-
-    @Override
-    public ExecutionContext getServerExecutionContext() {
-        throw fail();
-    }
-
-    @Override
-    public EntityDriverManager getEntityDriverManager() {
-        throw fail();
-    }
-
-    @Override
-    public DownloadResolverManager getEntityDownloadsManager() {
-        throw fail();
-    }
-
-    @Override
-    public SubscriptionManager getSubscriptionManager() {
-        throw fail();
-    }
-
-    @Override
-    public ExecutionContext getExecutionContext(Entity entity) {
-        throw fail();
-    }
-
-    @Override
-    public SubscriptionContext getSubscriptionContext(Entity entity) {
-        throw fail();
-    }
-
-    @Override
-    public RebindManager getRebindManager() {
-        throw fail();
-    }
-
-    @Override
-    public StringConfigMap getConfig() {
-        throw fail();
-    }
-
-    @Override
-    public boolean isRunning() {
-        if (running==null) throw fail();
-        return running;
-    }
-
-    @Override
-    public boolean isStartupComplete() {
-        if (startupComplete==null) throw fail();
-        return startupComplete;
-    }
-    
-    @Override
-    public LocationRegistry getLocationRegistry() {
-        throw fail();
-    }
-
-    @Override
-    public BrooklynCatalog getCatalog() {
-        throw fail();
-    }
-
-    @Override
-    public LocationManager getLocationManager() {
-        throw fail();
-    }
-
-    @Override
-    public AccessController getAccessController() {
-        throw fail();
-    }
-
-    @Override
-    public void reloadBrooklynProperties() {
-        throw fail();
-
-    }
-
-    @Override
-    public void addPropertiesReloadListener(PropertiesReloadListener listener) {
-        throw fail();
-
-    }
-
-    @Override
-    public void removePropertiesReloadListener(PropertiesReloadListener listener) {
-        throw fail();
-    }
-
-    @Override
-    public EntitlementManager getEntitlementManager() {
-        throw fail();
-    }
-
-    @Override
-    public BrooklynObject lookup(String id) {
-        throw fail();
-    }
-
-    @Override
-    public <T extends BrooklynObject> T lookup(String id, Class<T> type) {
-        throw fail();
-    }
-
-}