You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by wi...@apache.org on 2014/02/25 12:09:03 UTC
[2/2] git commit: updated refs/heads/master to 14689d7
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
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c02197ae
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c02197ae
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c02197ae
Branch: refs/heads/master
Commit: c02197ae86ba90ee4553fa437a1200e64915649f
Parents: e883877
Author: Niels de Vos <nd...@redhat.com>
Authored: Sat Nov 23 14:30:40 2013 -0700
Committer: Wido den Hollander <wi...@widodh.nl>
Committed: Tue Feb 25 12:08:46 2014 +0100
----------------------------------------------------------------------
.../classes/resources/messages.properties | 1 +
ui/dictionary.jsp | 1 +
ui/scripts/sharedFunctions.js | 9 +++
ui/scripts/system.js | 69 +++++++++++++++++++-
ui/scripts/zoneWizard.js | 51 ++++++++++++++-
5 files changed, 127 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c02197ae/client/WEB-INF/classes/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index bd4a27d..a1752f2 100644
--- a/client/WEB-INF/classes/resources/messages.properties
+++ b/client/WEB-INF/classes/resources/messages.properties
@@ -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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c02197ae/ui/dictionary.jsp
----------------------------------------------------------------------
diff --git a/ui/dictionary.jsp b/ui/dictionary.jsp
index 7ccb466..bf48417 100644
--- a/ui/dictionary.jsp
+++ b/ui/dictionary.jsp
@@ -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" />',
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c02197ae/ui/scripts/sharedFunctions.js
----------------------------------------------------------------------
diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js
index 9fa70e3..f0afea5 100644
--- a/ui/scripts/sharedFunctions.js
+++ b/ui/scripts/sharedFunctions.js
@@ -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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c02197ae/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 8159124..1f64a52 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -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',
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c02197ae/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index fd5705b..2691586 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -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',