You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ni...@apache.org on 2017/01/03 06:40:43 UTC

ambari git commit: AMBARI-19332 : Issue with FS action node in oozie workflow designer (Venkata Sairam via nitirajrathore)

Repository: ambari
Updated Branches:
  refs/heads/trunk cfa30ec70 -> 49a6929b9


AMBARI-19332 : Issue with FS action node in oozie workflow designer (Venkata Sairam via nitirajrathore)


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

Branch: refs/heads/trunk
Commit: 49a6929b93a8505db3a33b8fb9c1653ae0716263
Parents: cfa30ec
Author: Nitiraj Rathore <ni...@gmail.com>
Authored: Tue Jan 3 12:07:52 2017 +0530
Committer: Nitiraj Rathore <ni...@gmail.com>
Committed: Tue Jan 3 12:10:11 2017 +0530

----------------------------------------------------------------------
 .../resources/ui/app/components/fs-action.js    |   5 +-
 .../ui/app/components/prepare-config-fs.js      |  16 +-
 .../ui/app/domain/actionjob_hanlder.js          | 115 ++++++++++-
 .../templates/components/prepare-config-fs.hbs  | 207 +++----------------
 .../ui/app/validators/fs-action-validator.js    |   8 +-
 5 files changed, 146 insertions(+), 205 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/49a6929b/contrib/views/wfmanager/src/main/resources/ui/app/components/fs-action.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/components/fs-action.js b/contrib/views/wfmanager/src/main/resources/ui/app/components/fs-action.js
index 03acbf3..6233b62 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/components/fs-action.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/components/fs-action.js
@@ -21,7 +21,7 @@ const Validations = buildValidations({
   'actionModel.fsOps': {
     validators: [
       validator('fs-action-validator', {
-        dependentKeys: ['actionModel.fsOps.@each']
+        dependentKeys: ['actionModel.fsOps.@each.path','actionModel.fsOps.@each.source', 'actionModel.fsOps.@each.target', 'actionModel.fsOps.@each.group']
       })
     ]
   }
@@ -32,12 +32,13 @@ export default Ember.Component.extend(Validations, {
   setUp: function() {
     if (this.get('actionModel.fsOps') === undefined) {
       this.set("actionModel.fsOps", Ember.A([]));
+      this.set("actionModel.fsOps", [{"type":"mkdir"}]);
     }
     if (this.get('actionModel.configuration') === undefined) {
       this.set("actionModel.configuration", {});
       this.set("actionModel.configuration.property", Ember.A([]));
     }
-    var field = 'validations.attrs.actionModel.fsOps.isDirty';
+    var field = 'validations.attrs.actionModel.fsOps.isInvalid';
     this.set(field, false);
     this.sendAction('register', 'fsAction', this);
   }.on('init'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/49a6929b/contrib/views/wfmanager/src/main/resources/ui/app/components/prepare-config-fs.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/components/prepare-config-fs.js b/contrib/views/wfmanager/src/main/resources/ui/app/components/prepare-config-fs.js
index 3c425d9..ba9b91e 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/components/prepare-config-fs.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/components/prepare-config-fs.js
@@ -84,9 +84,7 @@ export default Ember.Component.extend({
       case "delete":
       case "touchz":
       this.get('fsOps').pushObject({
-        settings: {
-          path: this.get('path')
-        },
+        path :this.get('path'),
         type: value
       });
       break;
@@ -99,33 +97,27 @@ export default Ember.Component.extend({
       permissionsObj = Ember.$.extend(true, permissionsObj, rPerm);
       var perm = oPerm.operm + ""+ gPerm.gperm + ""+ rPerm.rperm;
       this.get('fsOps').pushObject({
-        settings: {
           path: this.get('path'),
           permissions: perm,
           permissionsObj: permissionsObj,
           recursive: this.get('recursive'),
-          dirfiles: this.get('dirFiles')
-        },
+          dirfiles: this.get('dirFiles'),
         type: value
       });
       break;
       case "chgrp":
       this.get('fsOps').pushObject({
-        settings: {
           path: this.get('path'),
           group: this.get('group'),
           recursive: this.get('recursive'),
-          dirfiles: this.get('dirFiles')
-        },
+          dirfiles: this.get('dirFiles'),
         type: value
       });
       break;
       case "move":
       this.get('fsOps').pushObject({
-        settings: {
           source: this.get('source'),
-          target: this.get('target')
-        },
+          target: this.get('target'),
         type: value
       });
       break;

http://git-wip-us.apache.org/repos/asf/ambari/blob/49a6929b/contrib/views/wfmanager/src/main/resources/ui/app/domain/actionjob_hanlder.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/actionjob_hanlder.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/actionjob_hanlder.js
index 2ce0ab4..af61c91 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/actionjob_hanlder.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/actionjob_hanlder.js
@@ -331,27 +331,66 @@ var FSActionJobHandler=ActionJobHandler.extend({
       }
       switch (fsop.type) {
         case "delete":
-        nodeObj.fs["delete"].push({"_path":fsop.settings.path});
+        nodeObj.fs["delete"].push({"_path":fsop.path});
         break;
         case "mkdir":
-        nodeObj.fs["mkdir"].push({"_path":fsop.settings.path});
+        nodeObj.fs["mkdir"].push({"_path":fsop.path});
         break;
         case "move":
-        nodeObj.fs["move"].push({"_source":fsop.settings.source,"_target":fsop.settings.target});
+        nodeObj.fs["move"].push({"_source":fsop.source,"_target":fsop.target});
         break;
         case "touchz":
-        nodeObj.fs["touchz"].push({"_path":fsop.settings.path});
+        nodeObj.fs["touchz"].push({"_path":fsop.path});
         break;
         case "chmod":
-        var conf={"_path":fsop.settings.path,"_permissions":fsop.settings.permissions,"_dir-files":fsop.settings.dirfiles};
-        if (fsop.settings.recursive){
+        var permissions, ownerPerm = 0, groupPerm = 0, othersPerm = 0, dirFiles = fsop.dirfiles;
+
+        if(fsop){
+          if(fsop.oread){
+            ownerPerm = 1;
+          }
+          if(fsop.owrite){
+            ownerPerm = ownerPerm + 2;
+          }
+          if(fsop.oexecute){
+            ownerPerm = ownerPerm + 4;
+          }
+          if(fsop.gread){
+            groupPerm = 1;
+          }
+          if(fsop.gwrite){
+            groupPerm = groupPerm + 2;
+          }
+          if(fsop.gexecute){
+            groupPerm = groupPerm + 4;
+          }
+          if(fsop.rread){
+            othersPerm = 1;
+          }
+          if(fsop.rwrite){
+            othersPerm = othersPerm + 2;
+          }
+          if(fsop.rexecute){
+            othersPerm = othersPerm + 4;
+          }
+        }
+        permissions = ownerPerm+""+groupPerm+""+othersPerm;
+        if(dirFiles === undefined){
+          dirFiles = false;
+        }
+        var conf={"_path":fsop.path,"_permissions":permissions,"_dir-files":dirFiles};
+        if (fsop.recursive){
           conf["recursive"]="";
         }
         nodeObj.fs["chmod"].push(conf);
         break;
         case "chgrp":
-        var conf={"_path":fsop.settings.path,"_group":fsop.settings.group,"_dir-files":fsop.settings.dirfiles};
-        if (fsop.settings.recursive){
+        var dirFiles = fsop.dirfiles;
+        if(dirFiles === undefined){
+          dirFiles = false;
+        }
+        var conf={"_path":fsop.path,"_group":fsop.group,"_dir-files":dirFiles};
+        if (fsop.recursive){
           conf["recursive"]="";
         }
         nodeObj.fs["chgrp"].push(conf);
@@ -376,7 +415,7 @@ var FSActionJobHandler=ActionJobHandler.extend({
           var fsConf={};
           fsOps.push(fsConf);
           fsConf.type=key;
-          var settings=fsConf.settings={};
+          var settings=fsConf;
           switch (key) {
             case "delete":
             settings.path=fileOpJson._path;
@@ -394,14 +433,68 @@ var FSActionJobHandler=ActionJobHandler.extend({
             case "chmod":
             settings.path=fileOpJson._path;
             settings.permissions=fileOpJson._permissions;
+            var perm = settings.permissions.toString();
+
+
+            for(var i=0; i< perm.length; i++){
+              var keyField;
+              if(i===0){
+                keyField = "o";
+              }else if(i===1){
+                keyField = "g";
+              }else if(i===2){
+                keyField = "r";
+              }
+              if(perm.slice(i,i+1) === "0"){
+                settings[keyField+"read"] = 0;
+                settings[keyField+"write"] = 0;
+                settings[keyField+"execute"] = 0;
+              }else if(perm.slice(i,i+1) === "1"){
+                settings[keyField+"read"] = 1;
+                settings[keyField+"write"] = 0;
+                settings[keyField+"execute"] = 0;
+              }else if(perm.slice(i,i+1) === "2"){
+                settings[keyField+"read"] = 0;
+                settings[keyField+"write"] = 2;
+                settings[keyField+"execute"] = 0;
+              }else if (perm.slice(i,i+1) === "3"){
+                settings[keyField+"read"] = 1;
+                settings[keyField+"write"] = 2;
+                settings[keyField+"execute"] = 0;
+              }else if (perm.slice(i,i+1) === "4"){
+                settings[keyField+"read"] = 0;
+                settings[keyField+"write"] = 0;
+                settings[keyField+"execute"] = 4;
+              }else if (perm.slice(i,i+1) === "5"){
+                settings[keyField+"read"] = 1;
+                settings[keyField+"write"] = 0;
+                settings[keyField+"execute"] = 4;
+              }else if (perm.slice(i,i+1) === "6"){
+                settings[keyField+"read"] = 0;
+                settings[keyField+"write"] = 2;
+                settings[keyField+"execute"] = 4;
+              }else if (perm.slice(i,i+1) === "7"){
+                settings[keyField+"read"] = 1;
+                settings[keyField+"write"] = 2;
+                settings[keyField+"execute"] = 4;
+              }              
+            }
             settings.dirfiles=fileOpJson["_dir-files"];
-            settings.recursive=fileOpJson["recursive"]?true:false;
+            if(fileOpJson.hasOwnProperty("recursive")){
+              settings.recursive = true;
+            }else{
+              settings.recursive = false;
+            }
             break;
             case "chgrp":
             settings.path=fileOpJson._path;
             settings.group=fileOpJson._group;
             settings.dirfiles=fileOpJson["_dir-files"];
-            settings.recursive=fileOpJson["recursive"]?true:false;
+            if(fileOpJson.hasOwnProperty("recursive")){
+              settings.recursive = true;
+            }else{
+              settings.recursive = false;
+            }
             break;
           }
         });

http://git-wip-us.apache.org/repos/asf/ambari/blob/49a6929b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/prepare-config-fs.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/prepare-config-fs.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/prepare-config-fs.hbs
index c549a26..545664f 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/prepare-config-fs.hbs
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/prepare-config-fs.hbs
@@ -33,22 +33,27 @@
           </select>
         </div>
         <div class="col-xs-1">
-          <input class="form-control btn btn-danger" type="button" {{action "deletePrepare" index}} value="-">
+          <input class="form-control  btn btn-success" type="button" {{action "addPrepare" index}} value="+">
         </div>
+        {{#if (not-eq index 0)}}
+          <div class="col-xs-1">
+            <input class="form-control btn btn-danger" type="button" {{action "deletePrepare" index}} value="-">
+          </div>
+        {{/if}}  
       </div>
       {{#if (or (eq prep.type "delete") (eq prep.type "mkdir") (eq prep.type "touchz"))}}
       <div class="form-group bottom-margin-zero">
         <label class="control-label col-xs-2">Path</label>
         <div class="col-xs-7">
           <div class="input-group">
-            {{input type="text" class="form-control" value=prep.settings.path placeholder="path of the directory"}}
+            {{input type="text" class="form-control" value=prep.path placeholder="path of the directory"}}
             <span class="input-group-btn">
               <button class="btn btn-primary" type="button" {{action "openFileBrowserForListItem" index "path"}}>Browse</button>
             </span>
           </div>
         </div>
       </div>
-      {{#unless prep.settings.path}}
+      {{#unless prep.path}}
       <div class="form-group bottom-margin-zero">
         <label class="text-danger control-label col-xs-2">
         </label>
@@ -63,14 +68,14 @@
         <label class="control-label col-xs-2">Path</label>
         <div class=" col-xs-7">
           <div class="input-group">
-            {{input type="text" class="form-control" name="name" value=prep.settings.path placeholder="Path"}}
+            {{input type="text" class="form-control" name="name" value=prep.path placeholder="Path"}}
             <span class="input-group-btn">
               <button class="btn btn-primary" type="button" {{action "openFileBrowserForListItem" index "path"}}>Browse</button>
             </span>
           </div>
         </div>
       </div>
-      {{#unless prep.settings.path}}
+      {{#unless prep.path}}
       <div class="form-group bottom-margin-zero">
         <label class="text-danger control-label col-xs-2">
         </label>
@@ -82,10 +87,10 @@
       <div class="form-group bottom-margin-zero">
         <label class="control-label col-xs-2">Group</label>
         <div class=" col-xs-7">
-          {{input class="form-control" type="text" indValidations="required"  name="value" value=prep.settings.group placeholder="Group"}}
+          {{input class="form-control" type="text" indValidations="required"  name="value" value=prep.group placeholder="Group"}}
         </div>
       </div>
-      {{#unless prep.settings.group}}
+      {{#unless prep.group}}
       <div class="form-group bottom-margin-zero">
         <label class="text-danger control-label col-xs-2">
         </label>
@@ -98,8 +103,8 @@
         <div class="file-op-setting">
           <div class="col-xs-10">
             <div class="checkbox">
-              <label class="labelCheckbox" style="padding-left:20px;" title="">{{input type="checkbox" name="recursive" checked=prep.settings.recursive}}Recursive</label>
-              <label class="labelCheckbox" title="">{{input type="checkbox" name="dirfiles" checked=prep.settings.dirfiles}}Dir-files</label>
+              <label class="labelCheckbox" style="padding-left:20px;" title="">{{input type="checkbox" name="recursive" checked=prep.recursive}}Recursive</label>
+              <label class="labelCheckbox" title="">{{input type="checkbox" name="dirfiles" checked=prep.dirfiles}}Dir-files</label>
             </div>
           </div>
         </div>
@@ -110,14 +115,14 @@
         <label class="control-label col-xs-2">Source</label>
         <div class=" col-xs-7">
           <div class="input-group">
-            {{input type="text" class="form-control" name="name" value=prep.settings.source placeholder="Source"}}
+            {{input type="text" class="form-control" name="name" value=prep.source placeholder="Source"}}
             <span class="input-group-btn">
               <button class="btn btn-primary" type="button" {{action "openFileBrowserForListItem" index "source"}}>Browse</button>
             </span>
           </div>
         </div>
       </div>
-      {{#unless prep.settings.source}}
+      {{#unless prep.source}}
       <div class="form-group bottom-margin-zero">
         <label class="text-danger control-label col-xs-2">
         </label>
@@ -131,14 +136,14 @@
         <label class="control-label col-xs-2">Target</label>
         <div class=" col-xs-7">
           <div class="input-group">
-            {{input class="form-control" type="text" indValidations="required"  name="value" value=prep.settings.target placeholder="Target"}}
+            {{input class="form-control" type="text" indValidations="required"  name="value" value=prep.target placeholder="Target"}}
             <span class="input-group-btn">
               <button class="btn btn-primary" type="button" {{action "openFileBrowserForListItem" index "target"}}>Browse</button>
             </span>
           </div>
         </div>
       </div>
-      {{#unless prep.settings.target}}
+      {{#unless prep.target}}
       <div class="form-group bottom-margin-zero">
         <label class="text-danger control-label col-xs-2">
         </label>
@@ -154,14 +159,14 @@
         <label class="control-label col-xs-2">Path</label>
         <div class=" col-xs-7">
           <div class="input-group">
-            {{input type="text" class="form-control" name="name" value=prep.settings.path placeholder="Path"}}
+            {{input type="text" class="form-control" name="name" value=prep.path placeholder="Path"}}
             <span class="input-group-btn">
               <button class="btn btn-primary" type="button" {{action "openFileBrowserForListItem" index "path"}}>Browse</button>
             </span>
           </div>
         </div>
       </div>
-      {{#unless prep.settings.path}}
+      {{#unless prep.path}}
       <div class="form-group bottom-margin-zero">
         <label class="text-danger control-label col-xs-2">
         </label>
@@ -173,7 +178,6 @@
       <div class="form-group bottom-margin-zero">
         <label class="control-label col-xs-2">Permissions</label>
         <div class="file-op-setting">
-
           <div class="col-xs-10">
             <div class="checkbox">
               <label class="labelCheckbox control-label col-xs-2" title=""></label>
@@ -185,36 +189,35 @@
           <div class="col-xs-10">
             <div class="checkbox">
               <label class="labelCheckbox control-label col-xs-2" title="">Owner</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=prep.settings.permissionsObj.oread}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.settings.permissionsObj.owrite}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.settings.permissionsObj.oexecute}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=prep.oread}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.owrite}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.oexecute}}</label>
             </div>
           </div>
           <div class="col-xs-10">
             <div class="checkbox">
               <label class="labelCheckbox control-label col-xs-2" title="">Group</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=prep.settings.permissionsObj.gread}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.settings.permissionsObj.gwrite}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.settings.permissionsObj.gexecute}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=prep.gread}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.gwrite}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.gexecute}}</label>
             </div>
           </div>
           <div class="col-xs-10">
             <div class="checkbox">
               <label class="labelCheckbox control-label col-xs-2" title="">Others</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=prep.settings.permissionsObj.rread}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.settings.permissionsObj.rwrite}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.settings.permissionsObj.rexecute}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=prep.rread}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.rwrite}}</label>
+              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=prep.rexecute}}</label>
             </div>
           </div>
         </div>
       </div>
-
       <div class="form-group">
         <div class="file-op-setting">
           <div class="col-xs-10">
             <div class="checkbox">
-              <label class="labelCheckbox" style="padding-left:20px;" title="">{{input type="checkbox" name="recursive" checked=prep.settings.recursive}}Recursive</label>
-              <label class="labelCheckbox" title="">{{input type="checkbox" name="dirfiles" checked=prep.settings.dirfiles}}Dir-files</label>
+              <label class="labelCheckbox" style="padding-left:20px;" title="">{{input type="checkbox" name="recursive" checked=prep.recursive}}Recursive</label>
+              <label class="labelCheckbox" title="">{{input type="checkbox" name="dirfiles" checked=prep.dirfiles}}Dir-files</label>
             </div>
           </div>
         </div>
@@ -223,152 +226,4 @@
     </div>
   </div>
   {{/each}}
-  <div class="panel panel-default">
-    <div class="panel-body">
-      <div class="form-group">
-        <label class="control-label col-xs-2">Command</label>
-        <div class=" col-xs-3">
-          <select class="form-control" onchange={{action "onPrepareTypeChange" value="target.value"}}>
-            <option value="mkdir">mkdir</option>
-            <option value="delete">delete</option>
-            <option value="move">move</option>
-            <option value="chmod">chmod</option>
-            <option value="touchz">touchz</option>
-            <option value="chgrp">chgrp</option>
-          </select>
-        </div>
-        <div class="col-xs-1">
-          <input class="form-control  btn btn-success" type="button" {{action "addPrepare"}} value="+">
-        </div>
-      </div>
-      {{#if mkdirORdeleteORtouchz}}
-      <div class="form-group">
-        <label class="control-label col-xs-2">Path</label>
-        <div class="col-xs-7">
-          <div class="input-group">
-            {{input type="text" class="form-control" value=path placeholder="path of the directory"}}
-            <span class="input-group-btn">
-              <button class="btn btn-primary" type="button" {{action "openFileBrowser" "path"}}>Browse</button>
-            </span>
-          </div>
-        </div>
-
-      </div>
-      {{/if}}
-      {{#if chgrp}}
-      <div class="form-group">
-        <label class="control-label col-xs-2">Path</label>
-        <div class=" col-xs-7">
-          <div class="input-group">
-            {{input type="text" class="form-control" name="name" value=path placeholder="Path"}}
-            <span class="input-group-btn">
-              <button class="btn btn-primary" type="button" {{action "openFileBrowser" "path"}}>Browse</button>
-            </span>
-          </div>
-        </div>
-      </div>
-      <div class="form-group">
-        <label class="control-label col-xs-2">Group</label>
-        <div class=" col-xs-7">
-          {{input class="form-control" type="text" indValidations="required"  name="value" value=group placeholder="Group"}}
-        </div>
-        <div class="file-op-setting">
-          <div class="col-xs-10">
-            <div class="checkbox">
-              <label class="labelCheckbox" style="padding-left:20px;" title="">{{input type="checkbox" name="recursive" checked=recursive}}Recursive</label>
-              <label class="labelCheckbox" title="">{{input type="checkbox" name="dirFiles" checked=dirFiles}}Dir-files</label>
-            </div>
-          </div>
-        </div>
-      </div>
-      {{/if}}
-      {{#if move}}
-      <div class="form-group">
-        <label class="control-label col-xs-2">Source</label>
-        <div class=" col-xs-7">
-          <div class="input-group">
-            {{input type="text" class="form-control" name="name" value=source placeholder="Source"}}
-            <span class="input-group-btn">
-              <button class="btn btn-primary" type="button" {{action "openFileBrowser" "source"}}>Browse</button>
-            </span>
-          </div>
-        </div>
-      </div>
-      <div class="form-group">
-        <label class="control-label col-xs-2">Target</label>
-        <div class=" col-xs-7">
-          <div class="input-group">
-            {{input class="form-control" type="text" indValidations="required"  name="value" value=target placeholder="Target"}}
-            <span class="input-group-btn">
-              <button class="btn btn-primary" type="button" {{action "openFileBrowser" "target"}}>Browse</button>
-            </span>
-          </div>
-        </div>
-      </div>
-      {{/if}}
-      {{#if chmod}}
-      <div class="form-group">
-        <label class="control-label col-xs-2">Path</label>
-        <div class=" col-xs-7">
-          <div class="input-group">
-            {{input type="text" class="form-control" name="name" value=path placeholder="Path"}}
-            <span class="input-group-btn">
-              <button class="btn btn-primary" type="button" {{action "openFileBrowser" "path"}}>Browse</button>
-            </span>
-          </div>
-        </div>
-      </div>
-      <div class="form-group">
-        <label class="control-label col-xs-2">Permissions</label>
-
-
-        <div class="file-op-setting">
-
-          <div class="col-xs-10">
-            <div class="checkbox">
-              <label class="labelCheckbox control-label col-xs-2" title=""></label>
-              <label class="labelCheckbox control-label col-xs-2" title="">Read</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">Write</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">Execute</label>
-            </div>
-          </div>
-          <div class="col-xs-10">
-            <div class="checkbox">
-              <label class="labelCheckbox control-label col-xs-2" title="">Owner</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=oread}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=owrite}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=oexecute}}</label>
-            </div>
-          </div>
-          <div class="col-xs-10">
-            <div class="checkbox">
-              <label class="labelCheckbox control-label col-xs-2" title="">Group</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=gread}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=gwrite}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=gexecute}}</label>
-            </div>
-          </div>
-          <div class="col-xs-10">
-            <div class="checkbox">
-              <label class="labelCheckbox control-label col-xs-2" title="">Others</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="recursive" checked=rread}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=rwrite}}</label>
-              <label class="labelCheckbox control-label col-xs-2" title="">{{input type="checkbox" name="dirFiles" checked=rexecute}}</label>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="form-group">
-        <div class="file-op-setting">
-          <div class="col-xs-10">
-            <div class="checkbox">
-              <label class="labelCheckbox" style="padding-left:20px;" title="">{{input type="checkbox" name="recursive" checked=recursive}}Recursive</label>
-              <label class="labelCheckbox" title="">{{input type="checkbox" name="dirFiles" checked=dirFiles}}Dir-files</label>
-            </div>
-          </div>
-        </div>
-      </div>
-      {{/if}}
-    </div>
-  </div>
 </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/49a6929b/contrib/views/wfmanager/src/main/resources/ui/app/validators/fs-action-validator.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/validators/fs-action-validator.js b/contrib/views/wfmanager/src/main/resources/ui/app/validators/fs-action-validator.js
index 4064379..edd96d2 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/validators/fs-action-validator.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/validators/fs-action-validator.js
@@ -28,25 +28,25 @@ const FsActionValidator = BaseValidator.extend({
         case "mkdir":
         case "delete":
         case "touchz":
-        if (!item.settings.path) {
+        if (!item.path) {
           isValidated = false;
           msg = "path is mandatory";
         }
         break;
         case "chmod":
-        if (!item.settings.path) {
+        if (!item.path) {
           isValidated = false;
           msg = "path and permissions are mandatory";
         }
         break;
         case "chgrp":
-        if (!item.settings.path || !item.settings.group) {
+        if (!item.path || !item.group) {
           isValidated = false;
           msg = "path and group are mandatory";
         }
         break;
         case "move":
-        if (!item.settings.source || !item.settings.target) {
+        if (!item.source || !item.target) {
           isValidated = false;
           msg = "source and target are mandatory";
         }