mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Merge branch 'object_store' of https://git-wip-us.apache.org/repos/asf/cloudstack into object_store
This commit is contained in:
commit
7e47b983f7
@ -186,22 +186,26 @@
|
||||
|
||||
if (userValid && isAdmin()) {
|
||||
$.ajax({
|
||||
url: createURL("listSwifts"),
|
||||
dataType: "json",
|
||||
url: createURL("listImageStores"),
|
||||
data: {
|
||||
provider: 'Swift'
|
||||
},
|
||||
async: false,
|
||||
success: function(json) {
|
||||
var items = json.listswiftsresponse.swift;
|
||||
var items = json.listimagestoreresponse.imagestore;
|
||||
if(items != null && items.length > 0)
|
||||
havingSwift = true;
|
||||
}
|
||||
});
|
||||
if (havingSwift == false) {
|
||||
$.ajax({
|
||||
url: createURL("listS3s"),
|
||||
dataType: "json",
|
||||
url: createURL("listImageStores"),
|
||||
data: {
|
||||
provider: 'S3'
|
||||
},
|
||||
async: false,
|
||||
success: function(json) {
|
||||
var items = json.lists3sresponse.s3;
|
||||
var items = json.listimagestoreresponse.imagestore;
|
||||
if (items != null && items.length > 0) {
|
||||
havingS3 = true;
|
||||
}
|
||||
@ -328,22 +332,26 @@
|
||||
|
||||
if (isAdmin()) {
|
||||
$.ajax({
|
||||
url: createURL("listSwifts"),
|
||||
dataType: "json",
|
||||
url: createURL("listImageStores"),
|
||||
data:{
|
||||
provider: 'Swift'
|
||||
},
|
||||
async: false,
|
||||
success: function(json) {
|
||||
var items = json.listswiftsresponse.swift;
|
||||
var items = json.listimagestoreresponse.imagestore;
|
||||
if(items != null && items.length > 0)
|
||||
havingSwift = true;
|
||||
}
|
||||
});
|
||||
if (havingSwift = false) {
|
||||
$.ajax({
|
||||
url: createURL("listS3s"),
|
||||
dataType: "json",
|
||||
url: createURL("listImageStores"),
|
||||
data: {
|
||||
provider: 'S3'
|
||||
},
|
||||
async: false,
|
||||
success: function(json) {
|
||||
var items = json.lists3sresponse.s3;
|
||||
var items = json.listimagestoreresponse.imagestore;
|
||||
if (items != null && items.length > 0) {
|
||||
havingS3 = true;
|
||||
}
|
||||
|
||||
@ -265,8 +265,7 @@
|
||||
secondaryStorageCount: function(data) {
|
||||
$.ajax({
|
||||
url: createURL('listImageStores'),
|
||||
data: {
|
||||
type: 'image',
|
||||
data: {
|
||||
page: 1,
|
||||
pagesize: 1 //specifying pagesize as 1 because we don't need any embedded objects to be returned here. The only thing we need from API response is "count" property.
|
||||
},
|
||||
@ -5455,7 +5454,7 @@
|
||||
|
||||
$.ajax({
|
||||
url: createURL('listImageStores' + searchByArgs),
|
||||
data: { type: 'image', page: args.page, pageSize: pageSize, listAll: true },
|
||||
data: { page: args.page, pageSize: pageSize, listAll: true },
|
||||
success: function (json) {
|
||||
args.response.success({ data: json.listimagestoreresponse.imagestore });
|
||||
},
|
||||
@ -10321,7 +10320,7 @@
|
||||
}
|
||||
}
|
||||
$.ajax({
|
||||
url: createURL("listImageStores&type=image&page=" + args.page + "&pagesize=" + pageSize + array1.join("")),
|
||||
url: createURL("listImageStores&page=" + args.page + "&pagesize=" + pageSize + array1.join("")),
|
||||
dataType: "json",
|
||||
async: true,
|
||||
success: function(json) {
|
||||
|
||||
@ -1502,7 +1502,108 @@
|
||||
}
|
||||
},
|
||||
secondaryStorage: {
|
||||
fields: {
|
||||
fields: {
|
||||
provider: {
|
||||
label: 'Provider',
|
||||
select: function(args){
|
||||
$.ajax({
|
||||
url: createURL('listStorageProviders'),
|
||||
data: {
|
||||
type: 'image'
|
||||
},
|
||||
success: function(json){
|
||||
var objs = json.liststorageprovidersresponse.dataStoreProvider;
|
||||
var items = [];
|
||||
if(objs != null) {
|
||||
for(var i = 0; i < objs.length; i++){
|
||||
if(objs[i].name == 'NFS')
|
||||
items.unshift({id: objs[i].name, description: objs[i].name});
|
||||
else
|
||||
items.push({id: objs[i].name, description: objs[i].name});
|
||||
}
|
||||
}
|
||||
args.response.success({
|
||||
data: items
|
||||
});
|
||||
|
||||
args.$select.change(function() {
|
||||
var $form = $(this).closest('form');
|
||||
if($(this).val() == "NFS") {
|
||||
//NFS
|
||||
$form.find('.form-item[rel=zoneid]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=nfsServer]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=path]').css('display', 'inline-block');
|
||||
|
||||
//S3
|
||||
$form.find('.form-item[rel=accesskey]').hide();
|
||||
$form.find('.form-item[rel=secretkey]').hide();
|
||||
$form.find('.form-item[rel=bucket]').hide();
|
||||
$form.find('.form-item[rel=endpoint]').hide();
|
||||
$form.find('.form-item[rel=usehttps]').hide();
|
||||
$form.find('.form-item[rel=connectiontimeout]').hide();
|
||||
$form.find('.form-item[rel=maxerrorretry]').hide();
|
||||
$form.find('.form-item[rel=sockettimeout]').hide();
|
||||
|
||||
//Swift
|
||||
$form.find('.form-item[rel=url]').hide();
|
||||
$form.find('.form-item[rel=account]').hide();
|
||||
$form.find('.form-item[rel=username]').hide();
|
||||
$form.find('.form-item[rel=key]').hide();
|
||||
}
|
||||
else if ($(this).val() == "S3") {
|
||||
//NFS
|
||||
$form.find('.form-item[rel=zoneid]').hide();
|
||||
$form.find('.form-item[rel=nfsServer]').hide();
|
||||
$form.find('.form-item[rel=path]').hide();
|
||||
|
||||
//S3
|
||||
$form.find('.form-item[rel=accesskey]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=secretkey]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=bucket]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=endpoint]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=usehttps]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=connectiontimeout]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=maxerrorretry]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=sockettimeout]').css('display', 'inline-block');
|
||||
|
||||
//Swift
|
||||
$form.find('.form-item[rel=url]').hide();
|
||||
$form.find('.form-item[rel=account]').hide();
|
||||
$form.find('.form-item[rel=username]').hide();
|
||||
$form.find('.form-item[rel=key]').hide();
|
||||
}
|
||||
else if($(this).val() == "Swift") {
|
||||
//NFS
|
||||
$form.find('.form-item[rel=zoneid]').hide();
|
||||
$form.find('.form-item[rel=nfsServer]').hide();
|
||||
$form.find('.form-item[rel=path]').hide();
|
||||
|
||||
//S3
|
||||
$form.find('.form-item[rel=accesskey]').hide();
|
||||
$form.find('.form-item[rel=secretkey]').hide();
|
||||
$form.find('.form-item[rel=bucket]').hide();
|
||||
$form.find('.form-item[rel=endpoint]').hide();
|
||||
$form.find('.form-item[rel=usehttps]').hide();
|
||||
$form.find('.form-item[rel=connectiontimeout]').hide();
|
||||
$form.find('.form-item[rel=maxerrorretry]').hide();
|
||||
$form.find('.form-item[rel=sockettimeout]').hide();
|
||||
|
||||
//Swift
|
||||
$form.find('.form-item[rel=url]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=account]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=username]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=key]').css('display', 'inline-block');
|
||||
}
|
||||
});
|
||||
|
||||
args.$select.change();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
//NFS (begin)
|
||||
nfsServer: {
|
||||
label: 'label.nfs.server',
|
||||
validation: { required: true }
|
||||
@ -1510,7 +1611,34 @@
|
||||
path: {
|
||||
label: 'label.path',
|
||||
validation: { required: true }
|
||||
}
|
||||
},
|
||||
//NFS (end)
|
||||
|
||||
|
||||
//S3 (begin)
|
||||
accesskey: { label: 'label.s3.access_key', validation: { required: true } },
|
||||
secretkey: { label: 'label.s3.secret_key', validation: { required: true} },
|
||||
bucket: { label: 'label.s3.bucket', validation: { required: true} },
|
||||
endpoint: { label: 'label.s3.endpoint' },
|
||||
usehttps: {
|
||||
label: 'label.s3.use_https',
|
||||
isEditable: true,
|
||||
isBoolean: true,
|
||||
isChecked: true,
|
||||
converter:cloudStack.converters.toBooleanText
|
||||
},
|
||||
connectiontimeout: { label: 'label.s3.connection_timeout' },
|
||||
maxerrorretry: { label: 'label.s3.max_error_retry' },
|
||||
sockettimeout: { label: 'label.s3.socket_timeout' },
|
||||
//S3 (end)
|
||||
|
||||
|
||||
//Swift (begin)
|
||||
url: { label: 'label.url', validation: { required: true } },
|
||||
account: { label: 'label.account' },
|
||||
username: { label: 'label.username' },
|
||||
key: { label: 'label.key' }
|
||||
//Swift (end)
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -3380,31 +3508,94 @@
|
||||
addSecondaryStorage: function(args) {
|
||||
message(dictionary['message.creating.secondary.storage']);
|
||||
|
||||
var nfs_server = args.data.secondaryStorage.nfsServer;
|
||||
var path = args.data.secondaryStorage.path;
|
||||
var url = nfsURL(nfs_server, path);
|
||||
|
||||
var data = {
|
||||
provider: 'NFS',
|
||||
zoneid: args.data.returnedZone.id,
|
||||
url: url
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: createURL('addImageStore'),
|
||||
data: data,
|
||||
success: function(json) {
|
||||
complete({
|
||||
data: $.extend(args.data, {
|
||||
returnedSecondaryStorage: json.addimagestoreresponse.secondarystorage
|
||||
})
|
||||
});
|
||||
},
|
||||
error: function(XMLHttpResponse) {
|
||||
var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
|
||||
error('addSecondaryStorage', errorMsg, { fn: 'addSecondaryStorage', args: args });
|
||||
}
|
||||
});
|
||||
if(args.data.secondaryStorage.provider == 'NFS') {
|
||||
var nfs_server = args.data.secondaryStorage.nfsServer;
|
||||
var path = args.data.secondaryStorage.path;
|
||||
var url = nfsURL(nfs_server, path);
|
||||
|
||||
var data = {
|
||||
provider: 'NFS',
|
||||
zoneid: args.data.returnedZone.id,
|
||||
url: url
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: createURL('addImageStore'),
|
||||
data: data,
|
||||
success: function(json) {
|
||||
complete({
|
||||
data: $.extend(args.data, {
|
||||
returnedSecondaryStorage: json.addimagestoreresponse.secondarystorage
|
||||
})
|
||||
});
|
||||
},
|
||||
error: function(XMLHttpResponse) {
|
||||
var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
|
||||
error('addSecondaryStorage', errorMsg, { fn: 'addSecondaryStorage', args: args });
|
||||
}
|
||||
});
|
||||
}
|
||||
else if(args.data.secondaryStorage.provider == 'S3') {
|
||||
$.ajax({
|
||||
url: createURL('addImageStore'),
|
||||
data: {
|
||||
provider: args.data.secondaryStorage.provider,
|
||||
'details[0].key': 'accesskey',
|
||||
'details[0].value': args.data.secondaryStorage.accesskey,
|
||||
'details[1].key': 'secretkey',
|
||||
'details[1].value': args.data.secondaryStorage.secretkey,
|
||||
'details[2].key': 'bucket',
|
||||
'details[2].value': args.data.secondaryStorage.bucket,
|
||||
'details[3].key': 'endpoint',
|
||||
'details[3].value': args.data.secondaryStorage.endpoint,
|
||||
'details[4].key': 'usehttps',
|
||||
'details[4].value': (args.data.secondaryStorage.usehttps != null && args.data.secondaryStorage.usehttps == 'on' ? 'true' : 'false'),
|
||||
'details[5].key': 'connectiontimeout',
|
||||
'details[5].value': args.data.secondaryStorage.connectiontimeout,
|
||||
'details[6].key': 'maxerrorretry',
|
||||
'details[6].value': args.data.secondaryStorage.maxerrorretry,
|
||||
'details[7].key': 'sockettimeout',
|
||||
'details[7].value': args.data.secondaryStorage.sockettimeout
|
||||
},
|
||||
success: function(json) {
|
||||
complete({
|
||||
data: $.extend(args.data, {
|
||||
returnedSecondaryStorage: json.addimagestoreresponse.secondarystorage
|
||||
})
|
||||
});
|
||||
},
|
||||
error: function(json) {
|
||||
var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
|
||||
error('addSecondaryStorage', errorMsg, { fn: 'addSecondaryStorage', args: args });
|
||||
}
|
||||
});
|
||||
}
|
||||
else if(args.data.secondaryStorage.provider == 'Swift') {
|
||||
$.ajax({
|
||||
url: createURL('addImageStore'),
|
||||
data: {
|
||||
provider: args.data.secondaryStorage.provider,
|
||||
url: args.data.secondaryStorage.url,
|
||||
'details[0].key': 'account',
|
||||
'details[0].value': args.data.secondaryStorage.account,
|
||||
'details[1].key': 'username',
|
||||
'details[1].value': args.data.secondaryStorage.username,
|
||||
'details[2].key': 'key',
|
||||
'details[2].value': args.data.secondaryStorage.key
|
||||
},
|
||||
success: function(json) {
|
||||
complete({
|
||||
data: $.extend(args.data, {
|
||||
returnedSecondaryStorage: json.addimagestoreresponse.secondarystorage
|
||||
})
|
||||
});
|
||||
},
|
||||
error: function(json) {
|
||||
var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
|
||||
error('addSecondaryStorage', errorMsg, { fn: 'addSecondaryStorage', args: args });
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user