[pve-devel] [PATCH qemu-server 1/2] introduce one global cloudinit disk size variable

Thomas Lamprecht t.lamprecht at proxmox.com
Tue May 14 09:01:21 CEST 2019


On 5/13/19 2:01 PM, Mira Limbeck wrote:
> this variable $CLOUDINIT_DISK_SIZE is to be used everywhere the size is
> currently specified (as 4 * 1024 * 1024) so we can change it once for all
> occurrences.
> additionally make the swap from literal value to variable everywhere it's used.
> 
> Signed-off-by: Mira Limbeck <m.limbeck at proxmox.com>
> ---
>  PVE/API2/Qemu.pm            | 4 ++--
>  PVE/QemuServer/Cloudinit.pm | 8 +++++---
>  2 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
> index 62e6549..4264dfa 100644
> --- a/PVE/API2/Qemu.pm
> +++ b/PVE/API2/Qemu.pm
> @@ -159,8 +159,8 @@ my $create_disks = sub {
>  	    }
>  
>  	    # Initial disk created with 4 MB and aligned to 4MB on regeneration
> -	    my $ci_size = 4 * 1024;
> -	    my $volid = PVE::Storage::vdisk_alloc($storecfg, $storeid, $vmid, $fmt, $name, $ci_size);
> +	    my $ci_size = $PVE::QemuServer::Cloudinit::CLOUDINIT_DISK_SIZE;
> +	    my $volid = PVE::Storage::vdisk_alloc($storecfg, $storeid, $vmid, $fmt, $name, $ci_size/1024);
>  	    $disk->{file} = $volid;
>  	    $disk->{media} = 'cdrom';
>  	    push @$vollist, $volid;
> diff --git a/PVE/QemuServer/Cloudinit.pm b/PVE/QemuServer/Cloudinit.pm
> index f46f7fd..19815b7 100644
> --- a/PVE/QemuServer/Cloudinit.pm
> +++ b/PVE/QemuServer/Cloudinit.pm
> @@ -11,6 +11,8 @@ use PVE::Tools qw(run_command file_set_contents);
>  use PVE::Storage;
>  use PVE::QemuServer;
>  
> +our $CLOUDINIT_DISK_SIZE = 4 * 1024 * 1024; # 4MiB in bytes

maybe we want to have this as constant, as else a module user could change
it, which would result in confusing stuff happening..

use constant CLOUDINIT_DISK_SIZE => 4 * 1024 * 1024; # 4MiB in bytes


internal this effectively just produces a submethod with minimal syntax sugar.
You could then use it CLOUDINIT_DISK_SIZE or MODULE::NAME::CLOUDINIT_DISK_SIZE,
respectively. What you think?

> +
>  sub commit_cloudinit_disk {
>      my ($conf, $vmid, $drive, $volname, $storeid, $files, $label) = @_;
>  
> @@ -36,9 +38,9 @@ sub commit_cloudinit_disk {
>      if ($size <= 0) {
>  	$volname =~ m/(vm-$vmid-cloudinit(.\Q$format\E)?)/;
>  	my $name = $1;
> -	$size = 4 * 1024;
> -	PVE::Storage::vdisk_alloc($storecfg, $storeid, $vmid, $format, $name, $size);
> -	$size *= 1024; # vdisk alloc takes KB, qemu-img dd's osize takes byte
> +	$size = $CLOUDINIT_DISK_SIZE;
> +	# vdisk alloc takes KB, qemu-img dd's osize takes byte
> +	PVE::Storage::vdisk_alloc($storecfg, $storeid, $vmid, $format, $name, $size/1024);
>      }
>  
>      my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
> 





More information about the pve-devel mailing list