[Kimchi-devel] [PATCH v2] Disallow storage format changes in UI for templates based on image file

Ramon Medeiros ramonn at linux.vnet.ibm.com
Thu Aug 27 14:25:10 UTC 2015


Reviewed-By: Ramon Medeiros <ramonn at br.ibm.com>

On 08/26/2015 03:53 PM, Jose Ricardo Ziviani wrote:
>   - Only support qcow2 for VMs created by a template based on an existing
>     image file. This commit sets the template format type to qcow2 and
>     disables changes on it for such scenario.
>
> Signed-off-by: Jose Ricardo Ziviani <joserz at linux.vnet.ibm.com>
> ---
>   ui/js/src/kimchi.template_edit_main.js | 35 +++++++++++++++++++++++++---------
>   1 file changed, 26 insertions(+), 9 deletions(-)
>
> diff --git a/ui/js/src/kimchi.template_edit_main.js b/ui/js/src/kimchi.template_edit_main.js
> index 21f5575..5b2fa75 100644
> --- a/ui/js/src/kimchi.template_edit_main.js
> +++ b/ui/js/src/kimchi.template_edit_main.js
> @@ -58,6 +58,12 @@ kimchi.template_edit_main = function() {
>                   kimchi.select('template-edit-graphics-list', spiceOpt);
>               }
>           };
> +        var isImageBasedTemplate = function() {
> +            if (template["vm-image"] && typeof template["vm-image"] == "string") {
> +                return true;
> +            }
> +            return false;
> +        }
>           enableSpice();
>           var initStorage = function(result) {
>               var scsipools = {};
> @@ -88,10 +94,16 @@ kimchi.template_edit_main = function() {
>                   $('#selectStorageName').append(storageOptions);
>
>                   // Set disk format
> -                $('#diskFormat').val(storageData.storageDiskFormat);
> -                $('#diskFormat').on('change', function() {
> -                    $('.template-storage-disk-format').val($(this).val());
> -                });
> +                if (isImageBasedTemplate()) {
> +                    $('#diskFormat').val('qcow2');
> +                    $('#diskFormat').prop('disabled', 'disabled');
> +                }
> +                else {
> +                    $('#diskFormat').val(storageData.storageDiskFormat);
> +                    $('#diskFormat').on('change', function() {
> +                        $('.template-storage-disk-format').val($(this).val());
> +                    });
> +                }
>
>                   $('#selectStorageName').change(function() {
>                       var selectedItem = $(this).parent().parent();
> @@ -106,16 +118,21 @@ 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);
> -                                $('#diskFormat').val('raw');
> -                                $('#diskFormat').prop('disabled', true).change();
> +                                if (!isImageBasedTemplate()) {
> +                                    $('#diskFormat').val('raw');
> +                                    $('#diskFormat').prop('disabled', true).change();
> +                                }
>                               });
>                           } else if (tempType === 'logical') {
>                               $('.template-storage-disk', selectedItem).attr('readonly', false);
> -                            $('#diskFormat').val('raw');
> -                            $('#diskFormat').prop('disabled', true).change();
> +                            if (!isImageBasedTemplate()) {
> +                                $('#diskFormat').val('raw');
> +                                $('#diskFormat').prop('disabled', true).change();
> +                            }
>                           } else {
>                               $('.template-storage-disk', selectedItem).attr('readonly', false);
> -                            if ($('#diskFormat').prop('disabled') == true) {
> +                            if ($('#diskFormat').prop('disabled') == true &&
> +                               !isImageBasedTemplate()) {
>                                   $('#diskFormat').val('qcow2');
>                                   $('#diskFormat').prop('disabled', false).change();
>                               }

-- 

Ramon Nunes Medeiros
Kimchi Developer
Linux Technology Center Brazil
IBM Systems & Technology Group
Phone : +55 19 2132 7878
ramonn at br.ibm.com




More information about the Kimchi-devel mailing list