[Kimchi-devel] [PATCH 1/2] Add UI support of iscsi
zhoumeina
zhoumein at linux.vnet.ibm.com
Mon Dec 23 02:09:57 UTC 2013
On 12/20/2013 09:32 PM, Aline Manera wrote:
> On 12/20/2013 03:28 AM, zhoumeina wrote:
>> This patch is working for add iscsi type in storage pool create
>> page.
>> 1.Add iscsi server to create storage pool page.
>> 2.Add iscsi target to create storage pool page.
>>
>> Signed-off-by: zhoumeina <zhoumein at linux.vnet.ibm.com>
>> ---
>> ui/js/src/kimchi.storagepool_add_main.js | 54
>> ++++++++++++++++++++++++-----
>> ui/pages/i18n.html.tmpl | 7 ++--
>> ui/pages/storagepool-add.html.tmpl | 19 ++++++++++
>> 3 files changed, 67 insertions(+), 13 deletions(-)
>>
>> diff --git a/ui/js/src/kimchi.storagepool_add_main.js
>> b/ui/js/src/kimchi.storagepool_add_main.js
>> index b31610a..cd8f1ae 100644
>> --- a/ui/js/src/kimchi.storagepool_add_main.js
>> +++ b/ui/js/src/kimchi.storagepool_add_main.js
>> @@ -35,6 +35,9 @@ kimchi.initStorageAddPage = function() {
>> }, {
>> label : "NFS",
>> value : "netfs"
>> + } ,{
>> + label : "ISCSI",
>> + value : "iscsi"
>> } ];
>> kimchi.listHostPartitions(function(data) {
>> if (data.length > 0) {
>> @@ -57,14 +60,22 @@ kimchi.initStorageAddPage = function() {
>> $('.path-section').removeClass('tmpl-html');
>> $('.logical-section').addClass('tmpl-html');
>> $('.nfs-section').addClass('tmpl-html');
>> + $('.iscsi-section').addClass('tmpl-html');
>> } else if ($(this).val() === 'netfs') {
>> $('.path-section').addClass('tmpl-html');
>> $('.logical-section').addClass('tmpl-html');
>> $('.nfs-section').removeClass('tmpl-html');
>> + $('.iscsi-section').addClass('tmpl-html');
>> + } else if ($(this).val() === 'iscsi') {
>> + $('.path-section').addClass('tmpl-html');
>> + $('.logical-section').addClass('tmpl-html');
>> + $('.nfs-section').addClass('tmpl-html');
>> + $('.iscsi-section').removeClass('tmpl-html');
>> } else {
>> $('.path-section').addClass('tmpl-html');
>> $('.logical-section').removeClass('tmpl-html');
>> $('.nfs-section').addClass('tmpl-html');
>> + $('.iscsi-section').addClass('tmpl-html');
>> }
>> });
>> });
>> @@ -85,6 +96,8 @@ kimchi.validateForm = function() {
>> return kimchi.validateDirForm();
>> } else if (poolType === "netfs") {
>> return kimchi.validateNfsForm();
>> + } else if (poolType === "iscsi") {
>> + return kimchi.validateIscsiForm();
>> } else {
>> return kimchi.validateLogicalForm();
>> }
>> @@ -107,26 +120,44 @@ kimchi.validateDirForm = function () {
>> kimchi.validateNfsForm = function () {
>> var nfspath = $('#nfspathId').val();
>> var nfsserver = $('#nfsserverId').val();
>> - if ('' === nfsserver) {
>> - kimchi.message.error(i18n['msg.pool.edit.nfsserver.blank']);
>> + if (!kimchi.validateServer(nfsserver)) {
>> return false;
>> }
>> -
>> if ('' === nfspath) {
>> kimchi.message.error(i18n['msg.pool.edit.nfspath.blank']);
>> return false;
>> }
>> - var domain =
>> "([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6}"
>> - var ip = "(\\d{1,3}\.){3}\\d{1,3}"
>> - regex = new RegExp('^' + domain + '|' + ip + '$')
>> + if (!/((\/([0-9a-zA-Z-_\.]+)))$/.test(nfspath)) {
>> + kimchi.message.error(i18n['msg.validate.pool.edit.nfspath']);
>> + return false;
>> + }
>> + return true;
>> +};
>>
>> - if(!regex.test(nfsserver)) {
>> - kimchi.message.error(i18n['msg.validate.pool.edit.nfsserver']);
>> +kimchi.validateIscsiForm = function() {
>> + var iscsiServer = $('#iscsiserverId').val();
>> + var iscsiTarget = $('#iscsiTargetId').val();
>> + if (!kimchi.validateServer(iscsiServer)) {
>> return false;
>> }
>> + if ('' === iscsiTarget) {
>> + kimchi.message.error(i18n['msg.pool.edit.iscsitarget.blank']);
>> + return false;
>> + }
>> + return true;
>> +};
>>
>> - if (!/((\/([0-9a-zA-Z-_\.]+)))$/.test(nfspath)) {
>> - kimchi.message.error(i18n['msg.validate.pool.edit.nfspath']);
>> +kimchi.validateServer = function(serverField) {
>> + if ('' === serverField) {
>> + kimchi.message.error(i18n['msg.pool.edit.server.blank']);
>> + return false;
>> + }
>> + var domain =
>> "([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6}"
>> + var ip = "(\\d{1,3}\.){3}\\d{1,3}"
>> + regex = new RegExp('^' + domain + '|' + ip + '$')
>> +
>> + if (!regex.test(serverField)) {
>> + kimchi.message.error(i18n['msg.validate.pool.edit.server']);
>> return false;
>> }
>> return true;
>> @@ -153,6 +184,9 @@ kimchi.addPool = function(event) {
>> deviceObj[0] = formData.devices;
>> formData.devices = deviceObj;
>> }
>> + } else if (poolType === 'iscsi'){
>> + formData.srcTarget = $('#iscsiserverId').val();
>> + formData.srcHost = $('#iscsiTargetId').val();
>> } else {
>> formData.nfspath = $('#nfspathId').val();
>> formData.nfsserver = $('#nfsserverId').val();
>> diff --git a/ui/pages/i18n.html.tmpl b/ui/pages/i18n.html.tmpl
>> index c1fc3d1..9d4603a 100644
>> --- a/ui/pages/i18n.html.tmpl
>> +++ b/ui/pages/i18n.html.tmpl
>> @@ -94,11 +94,9 @@ var i18n = {
>> 'msg.storagepool.confirm.delete':"$_("This will permanently
>> delete the Storage Pool. Would you like to continue?")",
>> 'msg.pool.edit.name.blank':"$_("The storage pool name can not
>> be blank.")",
>> 'msg.pool.edit.path.blank':"$_("The storage pool path can not
>> be blank.")",
>> - 'msg.pool.edit.nfsserver.blank':"$_("NFS server can not be
>> blank.")",
>> 'msg.pool.edit.nfspath.blank':"$_("NFS server mount path can
>> not be blank.")",
>> 'msg.validate.pool.edit.name':"$_("Invalid Storage Pool name.
>> It may only contain letters, numbers, underscores, and hyphens.")",
>> 'msg.validate.pool.edit.path':"$_("This is not a real linux
>> path.")",
>> - 'msg.validate.pool.edit.nfsserver':"$_("This is not a valid NFS
>> server.")",
>> 'msg.validate.pool.edit.nfspath':"$_("Invalid nfs mount path.")",
>> 'msg.kimchi.storage.pool.empty':"$_("This storage pool is
>> empty.")",
>> 'msg.kimchi.list.volume.fail':"$_("Failed to list the storage
>> pool.")",
>> @@ -121,7 +119,10 @@ var i18n = {
>> 'action_create': "$_("Create")",
>> 'msg_warning': "$_("Warning")",
>> 'msg.logicalpool.confirm.delete': "$_("It will format your disk
>> and you will loose any data in"
>> - " there, are you sure to
>> continue? ")"
>> + " there, are you sure to
>> continue? ")",
>> + 'msg.pool.edit.iscsitarget.blank': "$_("The iscsi target can not
>> be blank.")",
>> + 'msg.pool.edit.server.blank':"$_("Server name can not be blank.")",
>> + 'msg.validate.pool.edit.server':"$_("This is not a valid Server
>> Name or IP, please modify it.")"
>
> "This is not a valid Server Name or IP. Please, modify it."
>
>
>
>> };
>> </script>
>> </body>
>> diff --git a/ui/pages/storagepool-add.html.tmpl
>> b/ui/pages/storagepool-add.html.tmpl
>> index d7b046d..ce1e65d 100644
>> --- a/ui/pages/storagepool-add.html.tmpl
>> +++ b/ui/pages/storagepool-add.html.tmpl
>> @@ -96,6 +96,25 @@
>> <div class="host-partition"></div>
>> </section>
>> </div>
>> + <div class="iscsi-section tmpl-html">
>> + <section class="form-section">
>> + <h2>3. $_("ISCSI server")</h2>
>> + <div class="field">
>> + <p class="text-help">
>> + $_("ISCSI server IP or hostname. It
>> should not be empty.")</p>
>> + <input id="iscsiserverId" type="text"
>> class="text"
>> + style="width: 300px">
>> + </div>
>> + </section>
>> + <section class="form-section">
>> + <h2>4. $_("Target")</h2>
>> + <div class="field">
>> + <p class="text-help">$_("The iscsi
>> target on iscsi server")</p>
>
> "The ISCSI target on ISCSI server"
ok, thanks for your new translation.
>
>
>
>> + <input id="iscsiTargetId" type="text"
>> class="text" style="width: 300px">
>> + </div>
>> + <div class="clear"></div>
>> + </section>
>> + </div>
>> </form>
>> </div>
>> <footer>
>
More information about the Kimchi-devel
mailing list