HDFS-15312. Apply umask when creating directory by WebHDFS (#2096)
This commit is contained in:
parent
dc0626b5f2
commit
f77bbc2123
|
@ -416,9 +416,38 @@
|
||||||
$(this).prop('disabled', true);
|
$(this).prop('disabled', true);
|
||||||
$(this).button('complete');
|
$(this).button('complete');
|
||||||
|
|
||||||
|
// Get umask from the configuration
|
||||||
|
var umask, oldUmask, actualUmask;
|
||||||
|
|
||||||
|
$.ajax({'url': '/conf', 'dataType': 'xml', 'async': false}).done(
|
||||||
|
function(d) {
|
||||||
|
var $xml = $(d);
|
||||||
|
$xml.find('property').each(function(idx,v) {
|
||||||
|
// Current umask config
|
||||||
|
if ($(v).find('name').text() === 'fs.permissions.umask-mode') {
|
||||||
|
umask = $(v).find('value').text();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated umask config
|
||||||
|
if ($(v).find('name').text() === 'dfs.umask') {
|
||||||
|
oldUmask = $(v).find('value').text();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
var url = '/webhdfs/v1' + encode_path(append_path(current_directory,
|
var url = '/webhdfs/v1' + encode_path(append_path(current_directory,
|
||||||
$('#new_directory').val())) + '?op=MKDIRS';
|
$('#new_directory').val())) + '?op=MKDIRS';
|
||||||
|
|
||||||
|
if (oldUmask) {
|
||||||
|
actualUmask = 777 - oldUmask;
|
||||||
|
} else if (umask) {
|
||||||
|
actualUmask = 777 - umask;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actualUmask) {
|
||||||
|
url = url + '&permission=' + actualUmask;
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax(url, { type: 'PUT' }
|
$.ajax(url, { type: 'PUT' }
|
||||||
).done(function(data) {
|
).done(function(data) {
|
||||||
browse_directory(current_directory);
|
browse_directory(current_directory);
|
||||||
|
|
|
@ -416,9 +416,38 @@
|
||||||
$(this).prop('disabled', true);
|
$(this).prop('disabled', true);
|
||||||
$(this).button('complete');
|
$(this).button('complete');
|
||||||
|
|
||||||
|
// Get umask from the configuration
|
||||||
|
var umask, oldUmask, actualUmask;
|
||||||
|
|
||||||
|
$.ajax({'url': '/conf', 'dataType': 'xml', 'async': false}).done(
|
||||||
|
function(d) {
|
||||||
|
var $xml = $(d);
|
||||||
|
$xml.find('property').each(function(idx,v) {
|
||||||
|
// Current umask config
|
||||||
|
if ($(v).find('name').text() === 'fs.permissions.umask-mode') {
|
||||||
|
umask = $(v).find('value').text();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated umask config
|
||||||
|
if ($(v).find('name').text() === 'dfs.umask') {
|
||||||
|
oldUmask = $(v).find('value').text();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
var url = '/webhdfs/v1' + encode_path(append_path(current_directory,
|
var url = '/webhdfs/v1' + encode_path(append_path(current_directory,
|
||||||
$('#new_directory').val())) + '?op=MKDIRS';
|
$('#new_directory').val())) + '?op=MKDIRS';
|
||||||
|
|
||||||
|
if (oldUmask) {
|
||||||
|
actualUmask = 777 - oldUmask;
|
||||||
|
} else if (umask) {
|
||||||
|
actualUmask = 777 - umask;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actualUmask) {
|
||||||
|
url = url + '&permission=' + actualUmask;
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax(url, { type: 'PUT' }
|
$.ajax(url, { type: 'PUT' }
|
||||||
).done(function(data) {
|
).done(function(data) {
|
||||||
browse_directory(current_directory);
|
browse_directory(current_directory);
|
||||||
|
|
Loading…
Reference in New Issue