diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index bd4a27d52cb..a1752f274ed 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
diff --git a/ui/dictionary.jsp b/ui/dictionary.jsp
index 7ccb46650e7..bf48417cd47 100644
--- a/ui/dictionary.jsp
+++ b/ui/dictionary.jsp
@@ -607,6 +607,7 @@ dictionary = {
'label.gateway': '',
'label.general.alerts': '',
'label.generating.url': '',
+'label.gluster.volume': '',
'label.go.step.2': '',
'label.go.step.3': '',
'label.go.step.4': '',
diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js
index 9fa70e3bda4..f0afea508cc 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
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 8159124f069..1f64a525bda 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',
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index fd5705be7e3..26915868749 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',