[Kimchi-devel] [PATCH] UI-Template Edit: Enable user to change disk format
Rodrigo Trujillo
rodrigo.trujillo at linux.vnet.ibm.com
Thu Apr 16 18:56:33 UTC 2015
Indeed Cristian. I am going to do the adjustments.
Thank you for remember.
On 04/16/2015 10:58 AM, Crístian Viana wrote:
> A volume in a logical storage pool only uses the format 'raw'. Even if the
> user specifies a different format type, it will be 'raw' in the end. So it
> would be nice if the interface didn't allow the user to change the volume
> format for a logical pool, as it will be ignored anyway.
>
> https://libvirt.org/storage.html
>
> On Tue, Apr 14, 2015 at 3:24 AM Rodrigo Trujillo <
> rodrigo.trujillo at linux.vnet.ibm.com> wrote:
>
>> This patch adds a new field (Disk Format) in Storage tab in Template
>> edit window. Users will then be allowed to select any disk format
>> supported by Libvirt and Kimchi backend.
>> The default disk format is qcow2 (first option), so, for compatibility,
>> if the template register in objecstore does not contain the disk format
>> information, the new field is going to set 'qcow2' automatically.
>> For iscsi storagepools, the new field is going to be disabled and the
>> format is going to be set automatically as 'raw', just like the backend
>> behaves currently, avoiding errors.
>>
>> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
>> ---
>> ui/css/theme-default/template-edit.css | 8 +++++--
>> ui/js/src/kimchi.template_edit_main.js | 40
>> +++++++++++++++++++++++++++++-----
>> ui/pages/template-edit.html.tmpl | 16 ++++++++++++++
>> 3 files changed, 56 insertions(+), 8 deletions(-)
>>
>> diff --git a/ui/css/theme-default/template-edit.css
>> b/ui/css/theme-default/template-edit.css
>> index 7abee7c..ed9f02c 100644
>> --- a/ui/css/theme-default/template-edit.css
>> +++ b/ui/css/theme-default/template-edit.css
>> @@ -95,7 +95,7 @@
>>
>> #edit-template-tabs .template-storage-cell{
>> display: inline-block;
>> - width: 230px;
>> + width: 180px;
>> }
>>
>> #edit-template-tabs .template-storage-cell label {
>> @@ -114,7 +114,11 @@
>> }
>>
>> #form-template-storage .template-tab-body .template-storage-name {
>> - width: 220px;
>> + width: 170px;
>> +}
>> +
>> +#form-template-storage .template-tab-body .template-storage-disk-format {
>> + width: 160px;
>> }
>>
>> #edit-template-tabs .template-tab-body input[readonly] {
>> diff --git a/ui/js/src/kimchi.template_edit_main.js
>> b/ui/js/src/kimchi.template_edit_main.js
>> index 85f76cd..48ae26b 100644
>> --- a/ui/js/src/kimchi.template_edit_main.js
>> +++ b/ui/js/src/kimchi.template_edit_main.js
>> @@ -67,7 +67,7 @@ kimchi.template_edit_main = function() {
>> $('.template-tab-body',
>> '#form-template-storage').append(nodeStorage);
>> var storageOptions = '';
>> var scsiOptions = '';
>> - $('select',
>> '#form-template-storage').find('option').remove();
>> + $('select:first',
>> '#form-template-storage').find('option').remove();
>> $.each(result, function(index, storageEntities) {
>> if((storageEntities.state === 'active') &&
>> (storageEntities.type != 'kimchi-iso')) {
>> if(storageEntities.type === 'iscsi' ||
>> storageEntities.type === 'scsi') {
>> @@ -77,7 +77,7 @@ kimchi.template_edit_main = function() {
>> var isSlected = tmpPath === thisName
>> ? ' selected' : '';
>> scsiOptions += '<option' + isSlected
>> + '>' + tmpPath + '</option>';
>> });
>> - $('select',
>> '#form-template-storage').append(scsiOptions);
>> + $('select:first',
>> '#form-template-storage').append(scsiOptions);
>> }, function() {});
>> } else {
>> var isSlected = storageEntities.name ===
>> thisName ? ' selected' : '';
>> @@ -85,8 +85,20 @@ kimchi.template_edit_main = function() {
>> }
>> }
>> });
>> - $('select',
>> '#form-template-storage').append(storageOptions);
>> - $('select', '#form-template-storage').change(function() {
>> + $('select:first',
>> '#form-template-storage').append(storageOptions);
>> +
>> + // Set disk format
>> + $('select:last option',
>> '#form-template-storage').each(function() {
>> + if ($(this).text() == storageData.storageDiskFormat) {
>> + $(this).prop('selected', true);
>> + }
>> + });
>> +
>> + $('select:last',
>> '#form-template-storage').change(function() {
>> + $('.template-storage-disk-format').val($(this).val());
>> + });
>> +
>> + $('select:first',
>> '#form-template-storage').change(function() {
>> var selectedItem = $(this).parent().parent();
>> var tempStorageNameFull = $(this).val();
>> var tempName = tempStorageNameFull.split('/');
>> @@ -99,9 +111,19 @@ kimchi.template_edit_main = function() {
>> kimchi.getStoragePoolVolume(tempStorageName,
>> tempName[tempName.length-1], function(info) {
>> volSize = info.capacity / Math.pow(1024,
>> 3);
>> $('.template-storage-disk',
>> selectedItem).attr('readonly', true).val(volSize);
>> + $('select:last option',
>> selectedItem).each(function() {
>> + this.selected = (this.text == 'raw');
>> + });
>> + $('select:last',
>> selectedItem).prop('disabled', true).change();
>> });
>> } else {
>> $('.template-storage-disk',
>> selectedItem).attr('readonly', false);
>> + if ($('select:last',
>> selectedItem).prop('disabled') == true) {
>> + $('select:last option',
>> selectedItem).each(function() {
>> + this.selected = (this.text ==
>> 'qcow2');
>> + });
>> + $('select:last',
>> selectedItem).prop('disabled', false).change();
>> + }
>> }
>> });
>> });
>> @@ -120,7 +142,8 @@ kimchi.template_edit_main = function() {
>> editMode : 'hide',
>> storageName : defaultPool,
>> storageType : defaultType,
>> - storageDisk : diskEntities.size
>> + storageDisk : diskEntities.size,
>> + storageDiskFormat : diskEntities.format ?
>> diskEntities.format : 'qcow2'
>> }
>>
>> if (diskEntities.volume) {
>> @@ -131,6 +154,10 @@ kimchi.template_edit_main = function() {
>> nodeData.storageDisk = volSize;
>> addStorageItem(nodeData);
>>
>> $('.template-storage-disk').attr('readonly', true);
>> + $('select:last option',
>> '#form-template-storage').each(function() {
>> + this.selected = (this.text == 'raw');
>> + });
>> + $('select:last',
>> '#form-template-storage').prop('disabled', true).change();
>> });
>> } else {
>> addStorageItem(storageNodeData);
>> @@ -271,7 +298,8 @@ kimchi.template_edit_main = function() {
>> origDisks[0]['volume'] && delete
>> origDisks[0]['volume'];
>> origDisks[0].size =
>> Number($('.template-storage-disk', tmpItem).val());
>> }
>> - data[field] = origDisks;
>> + origDisks[0].format = $('.template-storage-disk-format',
>> tmpItem).val();
>> + data[field] = origDisks;
>> }
>> else if (field == 'graphics') {
>> var type = $('#form-template-general [name="' + field +
>> '"]').val();
>> diff --git a/ui/pages/template-edit.html.tmpl
>> b/ui/pages/template-edit.html.tmpl
>> index c7832c9..e64a30f 100644
>> --- a/ui/pages/template-edit.html.tmpl
>> +++ b/ui/pages/template-edit.html.tmpl
>> @@ -104,6 +104,7 @@
>> <span class="template-storage-cell">$_("Storage
>> Pool")</span>
>> <span class="template-storage-cell">$_("Type")</span>
>> <span
>> class="template-storage-cell">$_("Disk(GB)")</span>
>> + <span class="template-storage-cell">$_("Disk
>> Format")</span>
>> <button type="button"
>> id="template-edit-storage-add-button" class="action-area"></button>
>> </div>
>> <div class="template-tab-body">
>> @@ -160,6 +161,21 @@
>> <span class="template-storage-cell">
>> <input class="template-storage-disk" value={storageDisk}
>> type="text" />
>> </span>
>> + <span class="template-storage-cell">
>> + <input class="template-storage-disk-format"
>> value={storageDiskFormat} type="text" style="display:none" />
>> + <select>
>> + <option>qcow2</option>
>> + <option>raw</option>
>> + <option>bochs</option>
>> + <option>cloop</option>
>> + <option>cow</option>
>> + <option>dmg</option>
>> + <option>qcow</option>
>> + <option>qed</option>
>> + <option>vmdk</option>
>> + <option>vpc</option>
>> + </select>
>> + </span>
>> </div>
>> </script>
>> <script id="template-interface-tmpl" type="text/html">
>> --
>> 2.1.0
>>
>> _______________________________________________
>> Kimchi-devel mailing list
>> Kimchi-devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>>
>
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20150416/b81263dc/attachment.html>
More information about the Kimchi-devel
mailing list