mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Add Gluster to the list of protocols in the Management Server
Gluster can now be used for Primary Storage just like NFS. This change adds the
Gluster protocol to the Management Server:
Infrastructure -> Primary Storage -> Add Primary Storage
And also add the option to create Primary Storage on Gluster when
following the 'Add Zone' wizard from:
Infrastructure -> Zones -> Add Zone
Some screenshots and verification:
- http://blog.nixpanic.net/2013/12/using-gluster-as-primary-storage-in.html
This commit is contained in:
parent
e883877c7a
commit
c02197ae86
@ -603,6 +603,7 @@ label.full=Full
|
||||
label.gateway=Gateway
|
||||
label.general.alerts=General Alerts
|
||||
label.generating.url=Generating URL
|
||||
label.gluster.volume=Volume
|
||||
label.go.step.2=Go to Step 2
|
||||
label.go.step.3=Go to Step 3
|
||||
label.go.step.4=Go to Step 4
|
||||
|
||||
@ -607,6 +607,7 @@ dictionary = {
|
||||
'label.gateway': '<fmt:message key="label.gateway" />',
|
||||
'label.general.alerts': '<fmt:message key="label.general.alerts" />',
|
||||
'label.generating.url': '<fmt:message key="label.generating.url" />',
|
||||
'label.gluster.volume': '<fmt:message key="label.gluster.volume" />',
|
||||
'label.go.step.2': '<fmt:message key="label.go.step.2" />',
|
||||
'label.go.step.3': '<fmt:message key="label.go.step.3" />',
|
||||
'label.go.step.4': '<fmt:message key="label.go.step.4" />',
|
||||
|
||||
@ -1340,6 +1340,15 @@ var processPropertiesInImagestoreObject = function(jsonObj) {
|
||||
return url;
|
||||
}
|
||||
|
||||
function glusterURL(server, path) {
|
||||
var url;
|
||||
if (server.indexOf("://") == -1)
|
||||
url = "gluster://" + server + path;
|
||||
else
|
||||
url = server + path;
|
||||
return url;
|
||||
}
|
||||
|
||||
|
||||
//VM Instance
|
||||
|
||||
|
||||
@ -15171,6 +15171,10 @@
|
||||
id: "clvm",
|
||||
description: "CLVM"
|
||||
});
|
||||
items.push({
|
||||
id: "gluster",
|
||||
description: "Gluster"
|
||||
});
|
||||
args.response.success({
|
||||
data: items
|
||||
});
|
||||
@ -15277,6 +15281,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "SMB") {
|
||||
//"SMB" show almost the same fields as "nfs" does, except 3 more SMB-specific fields.
|
||||
$form.find('.form-item[rel=server]').css('display', 'inline-block');
|
||||
@ -15302,6 +15308,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "ocfs2") {
|
||||
//ocfs2 is the same as nfs, except no server field.
|
||||
$form.find('.form-item[rel=server]').hide();
|
||||
@ -15327,6 +15335,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "PreSetup") {
|
||||
$form.find('.form-item[rel=server]').hide();
|
||||
$form.find('.form-item[rel=server]').find(".value").find("input").val("localhost");
|
||||
@ -15351,6 +15361,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "iscsi") {
|
||||
$form.find('.form-item[rel=server]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=server]').find(".value").find("input").val("");
|
||||
@ -15373,6 +15385,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if ($(this).val() == "clvm") {
|
||||
$form.find('.form-item[rel=server]').hide();
|
||||
$form.find('.form-item[rel=server]').find(".value").find("input").val("localhost");
|
||||
@ -15395,6 +15409,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "vmfs") {
|
||||
$form.find('.form-item[rel=server]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=server]').find(".value").find("input").val("");
|
||||
@ -15417,6 +15433,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "SharedMountPoint") {
|
||||
//"SharedMountPoint" show the same fields as "nfs" does.
|
||||
$form.find('.form-item[rel=server]').hide();
|
||||
@ -15442,6 +15460,8 @@
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "rbd") {
|
||||
$form.find('.form-item[rel=rbdmonitor]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=rbdmonitor]').find(".name").find("label").text("RADOS Monitor:");
|
||||
@ -15466,6 +15486,33 @@
|
||||
$form.find('.form-item[rel=smbUsername]').hide();
|
||||
$form.find('.form-item[rel=smbPassword]').hide();
|
||||
$form.find('.form-item[rel=smbDomain]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
} else if (protocol == "gluster") {
|
||||
$form.find('.form-item[rel=server]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=server]').find(".value").find("input");
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=glustervolume]').find(".name").find("label").text("Volume:");
|
||||
|
||||
$form.find('.form-item[rel=path]').hide();
|
||||
|
||||
$form.find('.form-item[rel=smbUsername]').hide();
|
||||
$form.find('.form-item[rel=smbPassword]').hide();
|
||||
$form.find('.form-item[rel=smbDomain]').hide();
|
||||
|
||||
$form.find('.form-item[rel=iqn]').hide();
|
||||
$form.find('.form-item[rel=lun]').hide();
|
||||
|
||||
$form.find('.form-item[rel=volumegroup]').hide();
|
||||
|
||||
$form.find('.form-item[rel=vCenterDataCenter]').hide();
|
||||
$form.find('.form-item[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('.form-item[rel=rbdmonitor]').hide();
|
||||
$form.find('.form-item[rel=rbdpool]').hide();
|
||||
$form.find('.form-item[rel=rbdid]').hide();
|
||||
$form.find('.form-item[rel=rbdsecret]').hide();
|
||||
} else {
|
||||
$form.find('.form-item[rel=server]').css('display', 'inline-block');
|
||||
$form.find('.form-item[rel=server]').find(".value").find("input").val("");
|
||||
@ -15486,6 +15533,8 @@
|
||||
$form.find('.form-item[rel=smbUsername]').hide();
|
||||
$form.find('.form-item[rel=smbPassword]').hide();
|
||||
$form.find('.form-item[rel=smbDomain]').hide();
|
||||
|
||||
$form.find('.form-item[rel=glustervolume]').hide();
|
||||
}
|
||||
});
|
||||
|
||||
@ -15613,7 +15662,16 @@
|
||||
},
|
||||
isHidden: true
|
||||
},
|
||||
|
||||
|
||||
//gluster
|
||||
glustervolume: {
|
||||
label: 'label.gluster.volume',
|
||||
validation: {
|
||||
required: true
|
||||
},
|
||||
isHidden: true
|
||||
},
|
||||
|
||||
//always appear (begin)
|
||||
storageTags: {
|
||||
label: 'label.storage.tags',
|
||||
@ -15698,6 +15756,12 @@
|
||||
path = "/" + path;
|
||||
path += "/" + args.data.vCenterDataStore;
|
||||
url = vmfsURL("dummy", path);
|
||||
} else if (args.data.protocol == "gluster") {
|
||||
var glustervolume = args.data.glustervolume;
|
||||
|
||||
if (glustervolume.substring(0, 1) != "/")
|
||||
glustervolume = "/" + glustervolume;
|
||||
url = glusterURL(server, glustervolume);
|
||||
} else {
|
||||
var iqn = args.data.iqn;
|
||||
if (iqn.substring(0, 1) != "/")
|
||||
@ -16903,8 +16967,7 @@
|
||||
}
|
||||
},
|
||||
//SMB (end)
|
||||
|
||||
|
||||
|
||||
//S3 (begin)
|
||||
accesskey: {
|
||||
label: 'label.s3.access_key',
|
||||
|
||||
@ -1486,6 +1486,10 @@
|
||||
id: "clvm",
|
||||
description: "CLVM"
|
||||
});
|
||||
items.push({
|
||||
id: "gluster",
|
||||
description: "Gluster"
|
||||
});
|
||||
args.response.success({
|
||||
data: items
|
||||
});
|
||||
@ -1587,8 +1591,9 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if (protocol == "SMB") { //"SMB" show almost the same fields as "nfs" does, except 3 more SMB-specific fields.
|
||||
$form.find('[rel=server]').css('display', 'block');
|
||||
$form.find('[rel=server]').css('display', 'block');
|
||||
$form.find('[rel=server]').find(".value").find("input").val("");
|
||||
|
||||
$form.find('[rel=path]').css('display', 'block');
|
||||
@ -1604,6 +1609,8 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if (protocol == "ocfs2") { //ocfs2 is the same as nfs, except no server field.
|
||||
$form.find('[rel=server]').hide();
|
||||
$form.find('[rel=server]').find(".value").find("input").val("");
|
||||
@ -1621,6 +1628,8 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if (protocol == "PreSetup") {
|
||||
$form.find('[rel=server]').hide();
|
||||
$form.find('[rel=server]').find(".value").find("input").val("localhost");
|
||||
@ -1639,6 +1648,8 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if (protocol == "iscsi") {
|
||||
$form.find('[rel=server]').css('display', 'block');
|
||||
$form.find('[rel=server]').find(".value").find("input").val("");
|
||||
@ -1656,6 +1667,8 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if ($(this).val() == "clvm") {
|
||||
$form.find('[rel=server]').hide();
|
||||
$form.find('[rel=server]').find(".value").find("input").val("localhost");
|
||||
@ -1673,6 +1686,8 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if (protocol == "vmfs") {
|
||||
$form.find('[rel=server]').css('display', 'block');
|
||||
$form.find('[rel=server]').find(".value").find("input").val("");
|
||||
@ -1690,6 +1705,8 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').css('display', 'block');
|
||||
$form.find('[rel=vCenterDataStore]').css('display', 'block');
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if (protocol == "SharedMountPoint") { //"SharedMountPoint" show the same fields as "nfs" does.
|
||||
$form.find('[rel=server]').hide();
|
||||
$form.find('[rel=server]').find(".value").find("input").val("localhost");
|
||||
@ -1707,6 +1724,27 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
} else if (protocol == "gluster") {
|
||||
$form.find('[rel=server]').css('display', 'block');
|
||||
$form.find('[rel=server]').find(".value").find("input").val("");
|
||||
|
||||
$form.find('[rel=path]').hide();
|
||||
|
||||
$form.find('[rel=smbUsername]').hide();
|
||||
$form.find('[rel=smbPassword]').hide();
|
||||
$form.find('[rel=smbDomain]').hide();
|
||||
|
||||
$form.find('[rel=iqn]').hide();
|
||||
$form.find('[rel=lun]').hide();
|
||||
|
||||
$form.find('[rel=volumegroup]').hide();
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').css('display', 'block');
|
||||
} else {
|
||||
$form.find('[rel=server]').css('display', 'block');
|
||||
$form.find('[rel=server]').find(".value").find("input").val("");
|
||||
@ -1722,6 +1760,8 @@
|
||||
|
||||
$form.find('[rel=vCenterDataCenter]').hide();
|
||||
$form.find('[rel=vCenterDataStore]').hide();
|
||||
|
||||
$form.find('[rel=glustervolume]').hide();
|
||||
}
|
||||
});
|
||||
|
||||
@ -1810,6 +1850,15 @@
|
||||
isHidden: true
|
||||
},
|
||||
|
||||
//gluster
|
||||
glustervolume: {
|
||||
label: 'label.gluster.volume',
|
||||
validation: {
|
||||
required: true
|
||||
},
|
||||
isHidden: true
|
||||
},
|
||||
|
||||
//always appear (begin)
|
||||
storageTags: {
|
||||
label: 'label.storage.tags',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user