You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/11/03 16:52:01 UTC

[17/29] git commit: rename HAMode to HighAvailabilityMode, and same for priority (this brings us in line with convention on treatment of abbrs being camel case, preferring HttpRestApi over HTTPRESTAPI, but without the weirdness of HaMode; easy enough to

rename HAMode to HighAvailabilityMode, and same for priority
(this brings us in line with convention on treatment of abbrs being camel case,
preferring HttpRestApi over HTTPRESTAPI, but without the weirdness of HaMode; easy enough to be explicit on this API, imho)


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

Branch: refs/heads/master
Commit: 38c79ad0ff82384a86bc5e42e9ddebdc523f1fe2
Parents: 82666ea
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sun Oct 26 17:26:14 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri Oct 31 09:38:20 2014 -0500

----------------------------------------------------------------------
 .../entity/brooklynnode/BrooklynNode.java       | 16 ++---
 .../entity/brooklynnode/BrooklynNodeImpl.java   |  8 +--
 .../BrooklynClusterUpgradeEffectorBody.java     |  6 +-
 .../effector/SelectMasterEffectorBody.java      | 12 ++--
 .../effector/SetHAModeEffectorBody.java         | 64 --------------------
 .../effector/SetHAPriorityEffectorBody.java     | 55 -----------------
 .../SetHighAvailabilityModeEffectorBody.java    | 64 ++++++++++++++++++++
 ...SetHighAvailabilityPriorityEffectorBody.java | 55 +++++++++++++++++
 .../brooklynnode/effector/TestHttpEntity.java   |  4 +-
 9 files changed, 142 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNode.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNode.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNode.java
index 9bf385e..e125971 100644
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNode.java
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNode.java
@@ -283,25 +283,25 @@ public interface BrooklynNode extends SoftwareProcess, UsesJava {
 
     public static final Effector<Void> STOP_NODE_AND_KILL_APPS = StopNodeAndKillAppsEffector.STOP_NODE_AND_KILL_APPS;
 
-    public interface SetHAPriorityEffector {
+    public interface SetHighAvailabilityPriorityEffector {
         ConfigKey<Integer> PRIORITY = ConfigKeys.newIntegerConfigKey("priority", "HA priority");
-        Effector<Integer> SET_HA_PRIORITY = Effectors.effector(Integer.class, "setHAPriotity")
-                .description("Set HA priority on the node, returns the old priority")
+        Effector<Integer> SET_HIGH_AVAILABILITY_PRIORITY = Effectors.effector(Integer.class, "setHighAvailabilityPriority")
+                .description("Set the HA priority on the node, returning the old priority")
                 .parameter(PRIORITY)
                 .buildAbstract();
     }
 
-    public static final Effector<Integer> SET_HA_PRIORITY = SetHAPriorityEffector.SET_HA_PRIORITY;
+    public static final Effector<Integer> SET_HIGH_AVAILABILITY_PRIORITY = SetHighAvailabilityPriorityEffector.SET_HIGH_AVAILABILITY_PRIORITY;
 
-    public interface SetHAModeEffector {
+    public interface SetHighAvailabilityModeEffector {
         ConfigKey<HighAvailabilityMode> MODE = ConfigKeys.newConfigKey(HighAvailabilityMode.class, "mode", "HA mode");
-        Effector<ManagementNodeState> SET_HA_MODE = Effectors.effector(ManagementNodeState.class, "setHAMode")
-                .description("Set HA mode on the node, returns the existing state")
+        Effector<ManagementNodeState> SET_HIGH_AVAILABILITY_MODE = Effectors.effector(ManagementNodeState.class, "setHighAvailabilityMode")
+                .description("Set the HA mode on the node, returning the existing state")
                 .parameter(MODE)
                 .buildAbstract();
     }
 
-    public static final Effector<ManagementNodeState> SET_HA_MODE = SetHAModeEffector.SET_HA_MODE;
+    public static final Effector<ManagementNodeState> SET_HIGH_AVAILABILITY_MODE = SetHighAvailabilityModeEffector.SET_HIGH_AVAILABILITY_MODE;
 
     public EntityHttpClient http();
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/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 5bdbe2d..946d3fd 100644
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java
@@ -40,8 +40,8 @@ import brooklyn.entity.basic.ServiceStateLogic;
 import brooklyn.entity.basic.ServiceStateLogic.ServiceNotUpLogic;
 import brooklyn.entity.basic.SoftwareProcessImpl;
 import brooklyn.entity.brooklynnode.effector.BrooklynNodeUpgradeEffectorBody;
-import brooklyn.entity.brooklynnode.effector.SetHAModeEffectorBody;
-import brooklyn.entity.brooklynnode.effector.SetHAPriorityEffectorBody;
+import brooklyn.entity.brooklynnode.effector.SetHighAvailabilityModeEffectorBody;
+import brooklyn.entity.brooklynnode.effector.SetHighAvailabilityPriorityEffectorBody;
 import brooklyn.entity.effector.EffectorBody;
 import brooklyn.entity.effector.Effectors;
 import brooklyn.event.feed.ConfigToAttributes;
@@ -102,8 +102,8 @@ public class BrooklynNodeImpl extends SoftwareProcessImpl implements BrooklynNod
         getMutableEntityType().addEffector(ShutdownEffectorBody.SHUTDOWN);
         getMutableEntityType().addEffector(StopNodeButLeaveAppsEffectorBody.STOP_NODE_BUT_LEAVE_APPS);
         getMutableEntityType().addEffector(StopNodeAndKillAppsEffectorBody.STOP_NODE_AND_KILL_APPS);
-        getMutableEntityType().addEffector(SetHAPriorityEffectorBody.SET_HA_PRIORITY);
-        getMutableEntityType().addEffector(SetHAModeEffectorBody.SET_HA_MODE);
+        getMutableEntityType().addEffector(SetHighAvailabilityPriorityEffectorBody.SET_HIGH_AVAILABILITY_PRIORITY);
+        getMutableEntityType().addEffector(SetHighAvailabilityModeEffectorBody.SET_HIGH_AVAILABILITY_MODE);
         getMutableEntityType().addEffector(BrooklynNodeUpgradeEffectorBody.UPGRADE);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynClusterUpgradeEffectorBody.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynClusterUpgradeEffectorBody.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynClusterUpgradeEffectorBody.java
index 331f363..b815ee4 100644
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynClusterUpgradeEffectorBody.java
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynClusterUpgradeEffectorBody.java
@@ -41,7 +41,7 @@ import brooklyn.entity.brooklynnode.BrooklynCluster;
 import brooklyn.entity.brooklynnode.BrooklynCluster.SelectMasterEffector;
 import brooklyn.entity.brooklynnode.BrooklynCluster.UpgradeClusterEffector;
 import brooklyn.entity.brooklynnode.BrooklynNode;
-import brooklyn.entity.brooklynnode.BrooklynNode.SetHAModeEffector;
+import brooklyn.entity.brooklynnode.BrooklynNode.SetHighAvailabilityModeEffector;
 import brooklyn.entity.effector.EffectorBody;
 import brooklyn.entity.effector.Effectors;
 import brooklyn.entity.group.DynamicCluster;
@@ -192,8 +192,8 @@ public class BrooklynClusterUpgradeEffectorBody extends EffectorBody<Void> imple
 
         //3. Set HOT_STANDBY in case it is not enabled on the command line ...
         DynamicTasks.queue(Effectors.invocation(
-                BrooklynNode.SET_HA_MODE,
-                MutableMap.of(SetHAModeEffector.MODE, HighAvailabilityMode.HOT_STANDBY), 
+                BrooklynNode.SET_HIGH_AVAILABILITY_MODE,
+                MutableMap.of(SetHighAvailabilityModeEffector.MODE, HighAvailabilityMode.HOT_STANDBY), 
                 newNodes)).asTask().getUnchecked();
         //... and wait until all of the nodes change state
         // TODO fail quicker if state changes to FAILED

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SelectMasterEffectorBody.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SelectMasterEffectorBody.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SelectMasterEffectorBody.java
index 255b27c..40d65a7 100644
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SelectMasterEffectorBody.java
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SelectMasterEffectorBody.java
@@ -32,8 +32,8 @@ import brooklyn.entity.basic.EntityPredicates;
 import brooklyn.entity.brooklynnode.BrooklynCluster;
 import brooklyn.entity.brooklynnode.BrooklynCluster.SelectMasterEffector;
 import brooklyn.entity.brooklynnode.BrooklynNode;
-import brooklyn.entity.brooklynnode.BrooklynNode.SetHAModeEffector;
-import brooklyn.entity.brooklynnode.BrooklynNode.SetHAPriorityEffector;
+import brooklyn.entity.brooklynnode.BrooklynNode.SetHighAvailabilityModeEffector;
+import brooklyn.entity.brooklynnode.BrooklynNode.SetHighAvailabilityPriorityEffector;
 import brooklyn.entity.effector.EffectorBody;
 import brooklyn.entity.effector.Effectors;
 import brooklyn.management.ha.HighAvailabilityMode;
@@ -124,8 +124,8 @@ public class SelectMasterEffectorBody extends EffectorBody<Void> implements Sele
         ManagementNodeState oldState = DynamicTasks.queue(
                 Effectors.invocation(
                         oldMaster,
-                        BrooklynNode.SET_HA_MODE,
-                        MutableMap.of(SetHAModeEffector.MODE, mode))
+                        BrooklynNode.SET_HIGH_AVAILABILITY_MODE,
+                        MutableMap.of(SetHighAvailabilityModeEffector.MODE, mode))
             ).asTask().getUnchecked();
 
         if (oldState != ManagementNodeState.MASTER) {
@@ -138,8 +138,8 @@ public class SelectMasterEffectorBody extends EffectorBody<Void> implements Sele
         Integer oldPriority = DynamicTasks.queue(
                 Effectors.invocation(
                     newMaster,
-                    BrooklynNode.SET_HA_PRIORITY,
-                    MutableMap.of(SetHAPriorityEffector.PRIORITY, newPriority))
+                    BrooklynNode.SET_HIGH_AVAILABILITY_PRIORITY,
+                    MutableMap.of(SetHighAvailabilityPriorityEffector.PRIORITY, newPriority))
             ).asTask().getUnchecked();
 
         Integer expectedPriority = (newPriority == HA_MASTER_PRIORITY ? HA_STANDBY_PRIORITY : HA_MASTER_PRIORITY);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAModeEffectorBody.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAModeEffectorBody.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAModeEffectorBody.java
deleted file mode 100644
index 36a51d0..0000000
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAModeEffectorBody.java
+++ /dev/null
@@ -1,64 +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.entity.brooklynnode.effector;
-
-import org.apache.http.HttpStatus;
-
-import brooklyn.entity.Effector;
-import brooklyn.entity.brooklynnode.BrooklynNode;
-import brooklyn.entity.brooklynnode.BrooklynNode.SetHAModeEffector;
-import brooklyn.entity.brooklynnode.EntityHttpClient;
-import brooklyn.entity.effector.EffectorBody;
-import brooklyn.entity.effector.Effectors;
-import brooklyn.event.feed.http.HttpValueFunctions;
-import brooklyn.event.feed.http.JsonFunctions;
-import brooklyn.management.ha.HighAvailabilityMode;
-import brooklyn.management.ha.ManagementNodeState;
-import brooklyn.util.config.ConfigBag;
-import brooklyn.util.guava.Functionals;
-import brooklyn.util.http.HttpToolResponse;
-import brooklyn.util.javalang.Enums;
-
-import com.google.api.client.util.Preconditions;
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableMap;
-
-public class SetHAModeEffectorBody extends EffectorBody<ManagementNodeState> implements SetHAModeEffector {
-    public static final Effector<ManagementNodeState> SET_HA_MODE = Effectors.effector(SetHAModeEffector.SET_HA_MODE).impl(new SetHAModeEffectorBody()).build();
-
-    @Override
-    public ManagementNodeState call(ConfigBag parameters) {
-        HighAvailabilityMode mode = parameters.get(MODE);
-        Preconditions.checkNotNull(mode, MODE.getName() + " parameter is required");
-
-        EntityHttpClient httpClient = ((BrooklynNode)entity()).http();
-        HttpToolResponse resp = httpClient.post("/v1/server/ha/state", 
-                ImmutableMap.of("Brooklyn-Allow-Non-Master-Access", "true"),
-                ImmutableMap.of("mode", mode.toString()));
-
-        if (resp.getResponseCode() == HttpStatus.SC_OK) {
-            Function<HttpToolResponse, ManagementNodeState> parseRespone = Functionals.chain(
-                    Functionals.chain(HttpValueFunctions.jsonContents(), JsonFunctions.cast(String.class)),
-                    Enums.fromStringFunction(ManagementNodeState.class));
-            return parseRespone.apply(resp);
-        } else {
-            throw new IllegalStateException("Unexpected response code: " + resp.getResponseCode() + "\n" + resp.getContentAsString());
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAPriorityEffectorBody.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAPriorityEffectorBody.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAPriorityEffectorBody.java
deleted file mode 100644
index 94a961c..0000000
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHAPriorityEffectorBody.java
+++ /dev/null
@@ -1,55 +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.entity.brooklynnode.effector;
-
-import org.apache.http.HttpStatus;
-
-import brooklyn.entity.Effector;
-import brooklyn.entity.brooklynnode.BrooklynNode;
-import brooklyn.entity.brooklynnode.BrooklynNode.SetHAPriorityEffector;
-import brooklyn.entity.brooklynnode.EntityHttpClient;
-import brooklyn.entity.effector.EffectorBody;
-import brooklyn.entity.effector.Effectors;
-import brooklyn.util.config.ConfigBag;
-import brooklyn.util.http.HttpToolResponse;
-
-import com.google.api.client.util.Preconditions;
-import com.google.common.collect.ImmutableMap;
-
-public class SetHAPriorityEffectorBody extends EffectorBody<Integer> implements SetHAPriorityEffector {
-    public static final Effector<Integer> SET_HA_PRIORITY = Effectors.effector(SetHAPriorityEffector.SET_HA_PRIORITY).impl(new SetHAPriorityEffectorBody()).build();
-
-    @Override
-    public Integer call(ConfigBag parameters) {
-        Integer priority = parameters.get(PRIORITY);
-        Preconditions.checkNotNull(priority, PRIORITY.getName() + " parameter is required");
-
-        EntityHttpClient httpClient = ((BrooklynNode)entity()).http();
-        HttpToolResponse resp = httpClient.post("/v1/server/ha/priority",
-            ImmutableMap.of("Brooklyn-Allow-Non-Master-Access", "true"),
-            ImmutableMap.of("priority", priority.toString()));
-
-        if (resp.getResponseCode() == HttpStatus.SC_OK) {
-            return Integer.valueOf(resp.getContentAsString());
-        } else {
-            throw new IllegalStateException("Unexpected response code: " + resp.getResponseCode() + "\n" + resp.getContentAsString());
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityModeEffectorBody.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityModeEffectorBody.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityModeEffectorBody.java
new file mode 100644
index 0000000..3337257
--- /dev/null
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityModeEffectorBody.java
@@ -0,0 +1,64 @@
+/*
+ * 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.entity.brooklynnode.effector;
+
+import org.apache.http.HttpStatus;
+
+import brooklyn.entity.Effector;
+import brooklyn.entity.brooklynnode.BrooklynNode;
+import brooklyn.entity.brooklynnode.BrooklynNode.SetHighAvailabilityModeEffector;
+import brooklyn.entity.brooklynnode.EntityHttpClient;
+import brooklyn.entity.effector.EffectorBody;
+import brooklyn.entity.effector.Effectors;
+import brooklyn.event.feed.http.HttpValueFunctions;
+import brooklyn.event.feed.http.JsonFunctions;
+import brooklyn.management.ha.HighAvailabilityMode;
+import brooklyn.management.ha.ManagementNodeState;
+import brooklyn.util.config.ConfigBag;
+import brooklyn.util.guava.Functionals;
+import brooklyn.util.http.HttpToolResponse;
+import brooklyn.util.javalang.Enums;
+
+import com.google.api.client.util.Preconditions;
+import com.google.common.base.Function;
+import com.google.common.collect.ImmutableMap;
+
+public class SetHighAvailabilityModeEffectorBody extends EffectorBody<ManagementNodeState> implements SetHighAvailabilityModeEffector {
+    public static final Effector<ManagementNodeState> SET_HIGH_AVAILABILITY_MODE = Effectors.effector(SetHighAvailabilityModeEffector.SET_HIGH_AVAILABILITY_MODE).impl(new SetHighAvailabilityModeEffectorBody()).build();
+
+    @Override
+    public ManagementNodeState call(ConfigBag parameters) {
+        HighAvailabilityMode mode = parameters.get(MODE);
+        Preconditions.checkNotNull(mode, MODE.getName() + " parameter is required");
+
+        EntityHttpClient httpClient = ((BrooklynNode)entity()).http();
+        HttpToolResponse resp = httpClient.post("/v1/server/ha/state", 
+                ImmutableMap.of("Brooklyn-Allow-Non-Master-Access", "true"),
+                ImmutableMap.of("mode", mode.toString()));
+
+        if (resp.getResponseCode() == HttpStatus.SC_OK) {
+            Function<HttpToolResponse, ManagementNodeState> parseRespone = Functionals.chain(
+                    Functionals.chain(HttpValueFunctions.jsonContents(), JsonFunctions.cast(String.class)),
+                    Enums.fromStringFunction(ManagementNodeState.class));
+            return parseRespone.apply(resp);
+        } else {
+            throw new IllegalStateException("Unexpected response code: " + resp.getResponseCode() + "\n" + resp.getContentAsString());
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityPriorityEffectorBody.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityPriorityEffectorBody.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityPriorityEffectorBody.java
new file mode 100644
index 0000000..927a139
--- /dev/null
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/SetHighAvailabilityPriorityEffectorBody.java
@@ -0,0 +1,55 @@
+/*
+ * 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.entity.brooklynnode.effector;
+
+import org.apache.http.HttpStatus;
+
+import brooklyn.entity.Effector;
+import brooklyn.entity.brooklynnode.BrooklynNode;
+import brooklyn.entity.brooklynnode.BrooklynNode.SetHighAvailabilityPriorityEffector;
+import brooklyn.entity.brooklynnode.EntityHttpClient;
+import brooklyn.entity.effector.EffectorBody;
+import brooklyn.entity.effector.Effectors;
+import brooklyn.util.config.ConfigBag;
+import brooklyn.util.http.HttpToolResponse;
+
+import com.google.api.client.util.Preconditions;
+import com.google.common.collect.ImmutableMap;
+
+public class SetHighAvailabilityPriorityEffectorBody extends EffectorBody<Integer> implements SetHighAvailabilityPriorityEffector {
+    public static final Effector<Integer> SET_HIGH_AVAILABILITY_PRIORITY = Effectors.effector(SetHighAvailabilityPriorityEffector.SET_HIGH_AVAILABILITY_PRIORITY).impl(new SetHighAvailabilityPriorityEffectorBody()).build();
+
+    @Override
+    public Integer call(ConfigBag parameters) {
+        Integer priority = parameters.get(PRIORITY);
+        Preconditions.checkNotNull(priority, PRIORITY.getName() + " parameter is required");
+
+        EntityHttpClient httpClient = ((BrooklynNode)entity()).http();
+        HttpToolResponse resp = httpClient.post("/v1/server/ha/priority",
+            ImmutableMap.of("Brooklyn-Allow-Non-Master-Access", "true"),
+            ImmutableMap.of("priority", priority.toString()));
+
+        if (resp.getResponseCode() == HttpStatus.SC_OK) {
+            return Integer.valueOf(resp.getContentAsString());
+        } else {
+            throw new IllegalStateException("Unexpected response code: " + resp.getResponseCode() + "\n" + resp.getContentAsString());
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/38c79ad0/software/base/src/test/java/brooklyn/entity/brooklynnode/effector/TestHttpEntity.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/brooklynnode/effector/TestHttpEntity.java b/software/base/src/test/java/brooklyn/entity/brooklynnode/effector/TestHttpEntity.java
index 259a271..335f7f7 100644
--- a/software/base/src/test/java/brooklyn/entity/brooklynnode/effector/TestHttpEntity.java
+++ b/software/base/src/test/java/brooklyn/entity/brooklynnode/effector/TestHttpEntity.java
@@ -41,8 +41,8 @@ public class TestHttpEntity extends AbstractEntity implements BrooklynNode {
     @Override
     public void init() {
         super.init();
-        getMutableEntityType().addEffector(SetHAPriorityEffectorBody.SET_HA_PRIORITY);
-        getMutableEntityType().addEffector(SetHAModeEffectorBody.SET_HA_MODE);
+        getMutableEntityType().addEffector(SetHighAvailabilityPriorityEffectorBody.SET_HIGH_AVAILABILITY_PRIORITY);
+        getMutableEntityType().addEffector(SetHighAvailabilityModeEffectorBody.SET_HIGH_AVAILABILITY_MODE);
         setAttribute(HA_PRIORITY, 0);
     }