You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by di...@apache.org on 2017/11/17 20:43:30 UTC
ambari git commit: AMBARI-22136 Enable server_action tasks defined in
EU/RU upgrade pack xml files to take parameters (push to branch-2.6) (dili)
Repository: ambari
Updated Branches:
refs/heads/branch-2.6 a1d59b7dd -> fb65aab92
AMBARI-22136 Enable server_action tasks defined in EU/RU upgrade pack xml files to take parameters (push to branch-2.6) (dili)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fb65aab9
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fb65aab9
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fb65aab9
Branch: refs/heads/branch-2.6
Commit: fb65aab92ea3024728b2e100b0a90a8f6bbf13d9
Parents: a1d59b7
Author: Di Li <di...@apache.org>
Authored: Fri Nov 17 15:43:02 2017 -0500
Committer: Di Li <di...@apache.org>
Committed: Fri Nov 17 15:43:02 2017 -0500
----------------------------------------------------------------------
.../ambari/server/actionmanager/Stage.java | 3 +-
.../internal/UpgradeResourceProvider.java | 2 +
.../stack/upgrade/ServerSideActionTask.java | 15 +++++++
.../state/stack/upgrade/TaskParameter.java | 41 ++++++++++++++++++++
.../src/main/resources/upgrade-pack.xsd | 9 +++++
5 files changed, 69 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb65aab9/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
index 1d6ceaf..0563bfd 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
@@ -443,7 +443,8 @@ public class Stage {
* @param retryAllowed
* indicates whether retry after failure is allowed
*/
- public synchronized void addServerActionCommand(String actionName, @Nullable String userName,
+ public synchronized void addServerActionCommand(String actionName,
+ @Nullable String userName,
Role role, RoleCommand command, String clusterName,
ServiceComponentHostServerActionEvent event, @Nullable Map<String, String> commandParams,
@Nullable String commandDetail, @Nullable Map<String, Map<String, String>> configTags,
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb65aab9/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
index b6846f7..ff326aa 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
@@ -1409,6 +1409,8 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
stage.setStageId(stageId);
entity.setStageId(Long.valueOf(stageId));
+ Map<String, String> taskParameters = task.getParameters();
+ commandParams.putAll(taskParameters);
stage.addServerActionCommand(task.getImplementationClass(),
getManagementController().getAuthName(), Role.AMBARI_SERVER_ACTION, RoleCommand.EXECUTE,
cluster.getClusterName(),
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb65aab9/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServerSideActionTask.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServerSideActionTask.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServerSideActionTask.java
index 045c9ac..ee16bf7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServerSideActionTask.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServerSideActionTask.java
@@ -18,7 +18,9 @@
package org.apache.ambari.server.state.stack.upgrade;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
@@ -31,6 +33,19 @@ public abstract class ServerSideActionTask extends Task {
@XmlAttribute(name="class")
protected String implClass;
+ @XmlElement(name = "parameter")
+ public List<TaskParameter> parameters;
+
+ public Map<String, String> getParameters(){
+ Map<String, String> result = new HashMap<String, String>();
+ if (parameters != null) {
+ for (TaskParameter parameter : parameters) {
+ result.put(parameter.name, parameter.value);
+ }
+ }
+ return result;
+ }
+
public static final String actionVerb = "Executing";
public String getImplementationClass() {
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb65aab9/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskParameter.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskParameter.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskParameter.java
new file mode 100644
index 0000000..7773a67
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskParameter.java
@@ -0,0 +1,41 @@
+/*
+ * 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.state.stack.upgrade;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Optional parameter defined in upgrade packs to be used by server actions.
+ * These parameters are passed to corresponding server action as part of the command parameters.
+ * */
+public class TaskParameter {
+
+ /**
+ * Name of the parameter
+ * */
+ @XmlAttribute (name = "name")
+ public String name;
+
+ /**
+ * Parameter value
+ * */
+ @XmlValue
+ public String value;
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb65aab9/ambari-server/src/main/resources/upgrade-pack.xsd
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/upgrade-pack.xsd b/ambari-server/src/main/resources/upgrade-pack.xsd
index 249725e..9e50a08 100644
--- a/ambari-server/src/main/resources/upgrade-pack.xsd
+++ b/ambari-server/src/main/resources/upgrade-pack.xsd
@@ -292,6 +292,15 @@
<xs:extension base="abstract-task-type">
<xs:sequence>
<xs:element name="message" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="name" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>