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";
}