You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by pa...@apache.org on 2017/02/08 11:01:39 UTC
ambari git commit: AMBARI-19889. Workflow Manager Should be able to
handle fork with single path. (pallavkul)
Repository: ambari
Updated Branches:
refs/heads/trunk df50b6c01 -> 0eeecbbd1
AMBARI-19889. Workflow Manager Should be able to handle fork with single path. (pallavkul)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0eeecbbd
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0eeecbbd
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0eeecbbd
Branch: refs/heads/trunk
Commit: 0eeecbbd16b7a95527ca4ee59c5460b2244127d3
Parents: df50b6c
Author: pallavkul <pa...@gmail.com>
Authored: Wed Feb 8 16:30:41 2017 +0530
Committer: pallavkul <pa...@gmail.com>
Committed: Wed Feb 8 16:30:41 2017 +0530
----------------------------------------------------------------------
.../src/main/resources/ui/app/domain/findnode-mixin.js | 10 ++++++++--
.../src/main/resources/ui/app/domain/node-handler.js | 10 +++++++---
.../wfmanager/src/main/resources/ui/app/domain/node.js | 2 +-
.../src/main/resources/ui/app/domain/workflow.js | 5 ++---
4 files changed, 18 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/0eeecbbd/contrib/views/wfmanager/src/main/resources/ui/app/domain/findnode-mixin.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/findnode-mixin.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/findnode-mixin.js
index c770fb0..fd84208 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/findnode-mixin.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/findnode-mixin.js
@@ -20,6 +20,9 @@ var FindNodeMixin= Ember.Mixin.create({
findNodeById(startNode,id){
return this._findNodeById(startNode,id);
},
+ findNodeByType(startNode,type){
+ return this._findNodeByAttr(startNode,type,"type");
+ },
findTransition(startNode,sourceId,targetId){
return this._findTransition(startNode,sourceId,targetId);
},
@@ -63,15 +66,18 @@ var FindNodeMixin= Ember.Mixin.create({
return res;
},
_findNodeById(node,id){
+ return this._findNodeByAttr(node,id,"id");
+ },
+ _findNodeByAttr(node,id,attrType){
var self=this;
- if (node.get("id")===id){
+ if (node.get(attrType)===id){
return node;
}else{
if (node.transitions){
var res;
for (var i = 0; i < node.transitions.length; i++) {
var transition=node.transitions[i];
- res= self._findNodeById(transition.getTargetNode(false),id);
+ res= self._findNodeByAttr(transition.getTargetNode(false),id,attrType);
if (res){
break;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0eeecbbd/contrib/views/wfmanager/src/main/resources/ui/app/domain/node-handler.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/node-handler.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/node-handler.js
index 28ea527..12d12d2 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/node-handler.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/node-handler.js
@@ -164,8 +164,10 @@ var DecisionNodeHandler= NodeHandler.extend({
return this.nodeFactory.createEmptyDecisionNode(node._name);
},
handleImportTransitions(node,json,nodeMap){
+ var self=this;
var defaultPath=json.switch.default._to;
- node.addTransitionTo(nodeMap.get(defaultPath).node,"default");
+ var placeholder=self.nodeFactory.createPlaceholderNode(nodeMap.get(defaultPath).node);
+ node.addTransitionTo(placeholder,"default");
var cases=[];
if (Ember.isArray(json.switch.case)){
cases=json.switch.case;
@@ -173,7 +175,8 @@ var DecisionNodeHandler= NodeHandler.extend({
cases.push(json.switch.case);
}
cases.forEach(function(caseExpr){
- node.addTransitionTo(nodeMap.get(caseExpr._to).node,caseExpr.__text);
+ var placeholder=self.nodeFactory.createPlaceholderNode(nodeMap.get(caseExpr._to).node);
+ node.addTransitionTo(placeholder,caseExpr.__text);
});
}
});
@@ -190,7 +193,8 @@ var ForkNodeHandler= NodeHandler.extend({
return this.nodeFactory.createEmptyForkNode(node._name);
},
handleImportTransitions(node,json,nodeMap){
- json.path.forEach(function(path){
+ var paths=Ember.isArray(json.path)?json.path:[json.path];
+ paths.forEach(function(path){
node.addTransitionTo(nodeMap.get(path._start).node);
});
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0eeecbbd/contrib/views/wfmanager/src/main/resources/ui/app/domain/node.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/node.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/node.js
index db5bf1e..d815df1 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/node.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/node.js
@@ -180,7 +180,7 @@ var Node = Ember.Object.extend(FindNodeMixin,{
},
getDefaultTransitionTarget(){
if (this.isForkNode()){
- return this.findNodeById(this,"join_"+this.get("id"));
+ return this.findNodeByType(this,"join");
}
var transitions=this.get("transitions");
if (transitions.length===0){
http://git-wip-us.apache.org/repos/asf/ambari/blob/0eeecbbd/contrib/views/wfmanager/src/main/resources/ui/app/domain/workflow.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/workflow.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/workflow.js
index 900d692..3ca20d2 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/workflow.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/workflow.js
@@ -70,11 +70,10 @@ var Workflow= Ember.Object.extend(FindNodeMixin,{
},
findJoinNode(node){
- if (node.isDecisionNode() || node.isForkNode()){
+ if (node.isDecisionNode()){
return this.findCommonTargetNode(this.startNode,node);
}else if (node.isForkNode()) {
- //TODO find join node by id if it is efficient later..
- return this.findCommonTargetNode(this.startNode,node);
+ return node.getDefaultTransitionTarget();
}else{
return null;
}