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',