You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/07/11 16:25:39 UTC

[06/50] [abbrv] ambari git commit: AMBARI-21408. Update Custom Action during EU to replace all occurrences of IOP/iop with HDP/hdp

AMBARI-21408. Update Custom Action during EU to replace all occurrences of IOP/iop with HDP/hdp


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fc93b279
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fc93b279
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fc93b279

Branch: refs/heads/branch-2.5
Commit: fc93b27955fa1cccc775b229d730ad34884b7c9d
Parents: e36c11b
Author: Attila Doroszlai <ad...@hortonworks.com>
Authored: Thu Jul 6 14:37:33 2017 +0200
Committer: Attila Doroszlai <ad...@hortonworks.com>
Committed: Thu Jul 6 15:30:12 2017 +0200

----------------------------------------------------------------------
 .../upgrades/ChangeStackReferencesAction.java   | 108 +++++++++++++++++++
 .../ChangeStackRootDirectoryAction.java         |  92 ----------------
 .../upgrades/nonrolling-upgrade-to-hdp-2.6.xml  |   6 +-
 .../upgrades/nonrolling-upgrade-to-hdp-2.6.xml  |   6 +-
 .../ChangeStackReferencesActionTest.java        | 102 ++++++++++++++++++
 .../ChangeStackRootDirectoryActionTest.java     | 101 -----------------
 6 files changed, 216 insertions(+), 199 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/fc93b279/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesAction.java
new file mode 100644
index 0000000..d75d031
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesAction.java
@@ -0,0 +1,108 @@
+/*
+ * 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.ambari.server.serveraction.upgrades;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentMap;
+
+import javax.annotation.Nullable;
+import javax.inject.Inject;
+
+import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.actionmanager.HostRoleStatus;
+import org.apache.ambari.server.agent.CommandReport;
+import org.apache.ambari.server.serveraction.AbstractServerAction;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.Config;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
+/**
+ * Replaces references to the old stack ("iop" and "IOP") with the new
+ * stack ("hdp" and "HDP") during upgrade from BigInsights to HDP.
+ */
+public class ChangeStackReferencesAction extends AbstractServerAction {
+
+  private static final Logger LOG = LoggerFactory.getLogger(ChangeStackReferencesAction.class);
+  private static final Set<Map.Entry<String, String>> REPLACEMENTS = Maps.asMap(
+    Sets.newHashSet("/usr/iop", "iop/apps", "iop.version", "IOP_VERSION"),
+    new Function<String, String>() {
+      @Nullable
+      @Override
+      public String apply(@Nullable String input) {
+        return input != null
+          ? input.replace("iop", "hdp").replace("IOP", "HDP")
+          : null;
+      }
+    }
+  ).entrySet();
+
+  @Inject
+  private Clusters clusters;
+
+  @Override
+  public CommandReport execute(ConcurrentMap<String, Object> requestSharedDataContext) throws AmbariException, InterruptedException {
+    StringBuilder out = new StringBuilder();
+
+    String msg = "Changing stack-specific references from IOP to HDP";
+    LOG.info(msg);
+    out.append(msg).append(System.lineSeparator());
+
+    String clusterName = getExecutionCommand().getClusterName();
+    Cluster cluster = clusters.getCluster(clusterName);
+
+    for (String configType: cluster.getDesiredConfigs().keySet()) {
+      Config config = cluster.getDesiredConfigByType(configType);
+      String typeMsg = String.format("Checking config type=%s version=%s tag=%s", config.getType(), config.getVersion(), config.getTag());
+      LOG.debug(typeMsg);
+      out.append(typeMsg).append(System.lineSeparator());
+      Map<String, String> properties = config.getProperties();
+      if (!properties.isEmpty()) {
+        Map<String, String> changedProperties = Maps.newHashMap();
+        for (Map.Entry<String, String> entry : properties.entrySet()) {
+          String key = entry.getKey();
+          String original = entry.getValue();
+          if (original != null) {
+            String replaced = original;
+            for (Map.Entry<String, String> replacement : REPLACEMENTS) {
+              replaced = replaced.replace(replacement.getKey(), replacement.getValue());
+            }
+            if (!replaced.equals(original)) {
+              changedProperties.put(key, replaced);
+              String itemMsg = String.format("Changing %s", key);
+              LOG.debug(itemMsg);
+              out.append(itemMsg).append(System.lineSeparator());
+            }
+          }
+        }
+        if (!changedProperties.isEmpty()) {
+          config.updateProperties(changedProperties);
+          config.save();
+        }
+      }
+    }
+
+    return createCommandReport(0, HostRoleStatus.COMPLETED, "{}", out.toString(), "");
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/fc93b279/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryAction.java
deleted file mode 100644
index 31c4292..0000000
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryAction.java
+++ /dev/null
@@ -1,92 +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 org.apache.ambari.server.serveraction.upgrades;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentMap;
-
-import javax.inject.Inject;
-
-import org.apache.ambari.server.AmbariException;
-import org.apache.ambari.server.actionmanager.HostRoleStatus;
-import org.apache.ambari.server.agent.CommandReport;
-import org.apache.ambari.server.serveraction.AbstractServerAction;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.Config;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Maps;
-
-/**
- * Replaces references to the old stack root ("/usr/iop") with the new
- * stack root ("/usr/hdp") during upgrade from BigInsights to HDP.
- * TODO pass stack root locations as parameters from the upgrade pack
- */
-public class ChangeStackRootDirectoryAction extends AbstractServerAction {
-
-  private static final Logger LOG = LoggerFactory.getLogger(ChangeStackRootDirectoryAction.class);
-  private static final String OLD_STACK_ROOT = "/usr/iop";
-  private static final String NEW_STACK_ROOT = "/usr/hdp";
-
-  @Inject
-  private Clusters clusters;
-
-  @Override
-  public CommandReport execute(ConcurrentMap<String, Object> requestSharedDataContext) throws AmbariException, InterruptedException {
-    StringBuilder out = new StringBuilder();
-
-    String msg = String.format("Changing stack root directory references from %s to %s", OLD_STACK_ROOT, NEW_STACK_ROOT);
-    LOG.info(msg);
-    out.append(msg).append(System.lineSeparator());
-
-    String clusterName = getExecutionCommand().getClusterName();
-    Cluster cluster = clusters.getCluster(clusterName);
-
-    for (String configType: cluster.getDesiredConfigs().keySet()) {
-      Config config = cluster.getDesiredConfigByType(configType);
-      String typeMsg = String.format("Checking config type=%s version=%s tag=%s", config.getType(), config.getVersion(), config.getTag());
-      LOG.debug(typeMsg);
-      out.append(typeMsg).append(System.lineSeparator());
-      Map<String, String> properties = config.getProperties();
-      if (!properties.isEmpty()) {
-        Map<String, String> changedProperties = Maps.newHashMap();
-        for (Map.Entry<String, String> entry : properties.entrySet()) {
-          String key = entry.getKey();
-          String original = entry.getValue();
-          if (original != null) {
-            String replaced = original.replace(OLD_STACK_ROOT, NEW_STACK_ROOT);
-            if (!replaced.equals(original)) {
-              changedProperties.put(key, replaced);
-              String itemMsg = String.format("Changing %s", key);
-              LOG.debug(itemMsg);
-              out.append(itemMsg).append(System.lineSeparator());
-            }
-          }
-        }
-        if (!changedProperties.isEmpty()) {
-          config.updateProperties(changedProperties);
-          config.save();
-        }
-      }
-    }
-
-    return createCommandReport(0, HostRoleStatus.COMPLETED, "{}", out.toString(), "");
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/fc93b279/ambari-server/src/main/resources/stacks/BigInsights/4.2.5/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BigInsights/4.2.5/upgrades/nonrolling-upgrade-to-hdp-2.6.xml b/ambari-server/src/main/resources/stacks/BigInsights/4.2.5/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
index ac0f767..419bb5a 100644
--- a/ambari-server/src/main/resources/stacks/BigInsights/4.2.5/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
+++ b/ambari-server/src/main/resources/stacks/BigInsights/4.2.5/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
@@ -159,12 +159,12 @@
       </execute-stage>
     </group>
 
-    <group xsi:type="cluster" name="CHANGE_STACK_ROOT_DIRECTORY_REFERENCES" title="Change stack root directory references">
+    <group xsi:type="cluster" name="CHANGE_STACK_REFERENCES" title="Change stack references">
       <direction>UPGRADE</direction>
       <skippable>false</skippable>
       <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <execute-stage title="Change stack root directory references">
-        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.ChangeStackRootDirectoryAction"/>
+      <execute-stage title="Change stack references">
+        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.ChangeStackReferencesAction"/>
       </execute-stage>
     </group>
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/fc93b279/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml b/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
index be54f84..c4737c9 100644
--- a/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
+++ b/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
@@ -159,12 +159,12 @@
       </execute-stage>
     </group>
 
-    <group xsi:type="cluster" name="CHANGE_STACK_ROOT_DIRECTORY_REFERENCES" title="Change stack root directory references">
+    <group xsi:type="cluster" name="CHANGE_STACK_REFERENCES" title="Change stack references">
       <direction>UPGRADE</direction>
       <skippable>false</skippable>
       <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <execute-stage title="Change stack root directory references">
-        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.ChangeStackRootDirectoryAction"/>
+      <execute-stage title="Change stack references">
+        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.ChangeStackReferencesAction"/>
       </execute-stage>
     </group>
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/fc93b279/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesActionTest.java
new file mode 100644
index 0000000..592a95f
--- /dev/null
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackReferencesActionTest.java
@@ -0,0 +1,102 @@
+/*
+ * 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.ambari.server.serveraction.upgrades;
+
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.powermock.api.easymock.PowerMock.verifyAll;
+
+import java.lang.reflect.Field;
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ConcurrentMap;
+
+import org.apache.ambari.server.actionmanager.ExecutionCommandWrapper;
+import org.apache.ambari.server.actionmanager.HostRoleCommand;
+import org.apache.ambari.server.agent.ExecutionCommand;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.Config;
+import org.apache.ambari.server.state.DesiredConfig;
+import org.junit.Test;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Injector;
+
+public class ChangeStackReferencesActionTest {
+
+  @Test
+  public void testExecute() throws Exception {
+    String clusterName = "c1";
+    String configType = "cluster-env";
+
+    Injector injector = createNiceMock(Injector.class);
+    Clusters clusters = createNiceMock(Clusters.class);
+    Cluster cluster = createNiceMock(Cluster.class);
+
+    Map<String, String> commandParams = Maps.newHashMap();
+    commandParams.put("clusterName", clusterName);
+
+    ExecutionCommand executionCommand = new ExecutionCommand();
+    executionCommand.setCommandParams(commandParams);
+    executionCommand.setClusterName(clusterName);
+
+    HostRoleCommand hrc = createNiceMock(HostRoleCommand.class);
+    expect(hrc.getExecutionCommandWrapper()).andReturn(new ExecutionCommandWrapper(executionCommand));
+
+    // it's difficult to set up a real ConfigImpl, so use a mock
+    Config clusterEnv = createNiceMock(Config.class);
+    expect(clusterEnv.getType()).andReturn(configType).anyTimes();
+
+    Map<String, String> originalProperties = Maps.newHashMap();
+    originalProperties.put("mapreduce_tar_source", "/usr/iop/current/hadoop-client/mapreduce.tar.gz");
+    originalProperties.put("pig_tar_destination_folder", "hdfs:///iop/apps/{{ stack_version }}/pig/");
+    originalProperties.put("pig_tar_source", "/usr/iop/current/pig-client/pig.tar.gz");
+    expect(clusterEnv.getProperties()).andReturn(originalProperties).anyTimes();
+
+    // this is the crux of the test
+    Map<String, String> updatedProperties = Maps.newHashMap();
+    updatedProperties.put("mapreduce_tar_source", "/usr/hdp/current/hadoop-client/mapreduce.tar.gz");
+    updatedProperties.put("pig_tar_destination_folder", "hdfs:///hdp/apps/{{ stack_version }}/pig/");
+    updatedProperties.put("pig_tar_source", "/usr/hdp/current/pig-client/pig.tar.gz");
+    clusterEnv.updateProperties(updatedProperties); expectLastCall();
+
+    Map<String, DesiredConfig> desiredConfigs = Collections.singletonMap(configType, createNiceMock(DesiredConfig.class));
+    expect(cluster.getDesiredConfigs()).andReturn(desiredConfigs);
+    expect(cluster.getDesiredConfigByType(configType)).andReturn(clusterEnv).atLeastOnce();
+    expect(clusters.getCluster(clusterName)).andReturn(cluster).anyTimes();
+    expect(injector.getInstance(Clusters.class)).andReturn(clusters).atLeastOnce();
+
+    ChangeStackReferencesAction underTest = new ChangeStackReferencesAction();
+    underTest.setExecutionCommand(executionCommand);
+    underTest.setHostRoleCommand(hrc);
+
+    Field clustersField = ChangeStackReferencesAction.class.getDeclaredField("clusters");
+    clustersField.setAccessible(true);
+    clustersField.set(underTest, clusters);
+
+    replay(injector, clusters, cluster, clusterEnv, hrc);
+
+    ConcurrentMap<String, Object> emptyMap = Maps.newConcurrentMap();
+    underTest.execute(emptyMap);
+
+    verifyAll();
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/fc93b279/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryActionTest.java
deleted file mode 100644
index ceac632..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ChangeStackRootDirectoryActionTest.java
+++ /dev/null
@@ -1,101 +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 org.apache.ambari.server.serveraction.upgrades;
-
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.powermock.api.easymock.PowerMock.verifyAll;
-
-import java.lang.reflect.Field;
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.ConcurrentMap;
-
-import org.apache.ambari.server.actionmanager.ExecutionCommandWrapper;
-import org.apache.ambari.server.actionmanager.HostRoleCommand;
-import org.apache.ambari.server.agent.ExecutionCommand;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.Config;
-import org.apache.ambari.server.state.DesiredConfig;
-import org.junit.Test;
-
-import com.google.common.collect.Maps;
-import com.google.inject.Injector;
-
-public class ChangeStackRootDirectoryActionTest {
-
-  @Test
-  public void testExecute() throws Exception {
-    String clusterName = "c1";
-    String configType = "cluster-env";
-
-    Injector injector = createNiceMock(Injector.class);
-    Clusters clusters = createNiceMock(Clusters.class);
-    Cluster cluster = createNiceMock(Cluster.class);
-
-    Map<String, String> commandParams = Maps.newHashMap();
-    commandParams.put("clusterName", clusterName);
-
-    ExecutionCommand executionCommand = new ExecutionCommand();
-    executionCommand.setCommandParams(commandParams);
-    executionCommand.setClusterName(clusterName);
-
-    HostRoleCommand hrc = createNiceMock(HostRoleCommand.class);
-    expect(hrc.getExecutionCommandWrapper()).andReturn(new ExecutionCommandWrapper(executionCommand));
-
-    // it's difficult to set up a real ConfigImpl, so use a mock
-    Config clusterEnv = createNiceMock(Config.class);
-    expect(clusterEnv.getType()).andReturn(configType).anyTimes();
-
-    Map<String, String> originalProperties = Maps.newHashMap();
-    originalProperties.put("mapreduce_tar_source", "/usr/iop/current/hadoop-client/mapreduce.tar.gz");
-    originalProperties.put("pig_tar_destination_folder", "hdfs:///iop/apps/{{ stack_version }}/pig/");
-    originalProperties.put("pig_tar_source", "/usr/iop/current/pig-client/pig.tar.gz");
-    expect(clusterEnv.getProperties()).andReturn(originalProperties).anyTimes();
-
-    // this is the crux of the test
-    Map<String, String> updatedProperties = Maps.newHashMap();
-    updatedProperties.put("mapreduce_tar_source", "/usr/hdp/current/hadoop-client/mapreduce.tar.gz");
-    updatedProperties.put("pig_tar_source", "/usr/hdp/current/pig-client/pig.tar.gz");
-    clusterEnv.updateProperties(updatedProperties); expectLastCall();
-
-    Map<String, DesiredConfig> desiredConfigs = Collections.singletonMap(configType, createNiceMock(DesiredConfig.class));
-    expect(cluster.getDesiredConfigs()).andReturn(desiredConfigs);
-    expect(cluster.getDesiredConfigByType(configType)).andReturn(clusterEnv).atLeastOnce();
-    expect(clusters.getCluster(clusterName)).andReturn(cluster).anyTimes();
-    expect(injector.getInstance(Clusters.class)).andReturn(clusters).atLeastOnce();
-
-    ChangeStackRootDirectoryAction underTest = new ChangeStackRootDirectoryAction();
-    underTest.setExecutionCommand(executionCommand);
-    underTest.setHostRoleCommand(hrc);
-
-    Field clustersField = ChangeStackRootDirectoryAction.class.getDeclaredField("clusters");
-    clustersField.setAccessible(true);
-    clustersField.set(underTest, clusters);
-
-    replay(injector, clusters, cluster, clusterEnv, hrc);
-
-    ConcurrentMap<String, Object> emptyMap = Maps.newConcurrentMap();
-    underTest.execute(emptyMap);
-
-    verifyAll();
-  }
-}