diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index f199371..3b9a86a 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -2167,6 +2167,8 @@ sub write_vm_config { foreach my $key (sort keys %$conf) { next if $key =~ /^(digest|description|pending|snapshots|special-sections)$/; + # an empty tag list is only needed as pending change for removing all tags + next if $key eq 'tags' && !$pending && $conf->{$key} =~ m/^\s*$/; $raw .= "$key: $conf->{$key}\n"; } return $raw; diff --git a/src/test/parse-config-expected/empty-tags.conf b/src/test/parse-config-expected/empty-tags.conf new file mode 100644 index 0000000..13e82c4 --- /dev/null +++ b/src/test/parse-config-expected/empty-tags.conf @@ -0,0 +1,8 @@ +# empty tag list +boot: order=scsi0 +cores: 1 +memory: 512 +name: notags +ostype: l26 +scsi0: local-lvm:vm-100-disk-0,size=4G +scsihw: virtio-scsi-single diff --git a/src/test/parse-config-input/empty-tags.conf b/src/test/parse-config-input/empty-tags.conf new file mode 100644 index 0000000..e3e09d6 --- /dev/null +++ b/src/test/parse-config-input/empty-tags.conf @@ -0,0 +1,9 @@ +# empty tag list +boot: order=scsi0 +cores: 1 +memory: 512 +name: notags +ostype: l26 +scsi0: local-lvm:vm-100-disk-0,size=4G +scsihw: virtio-scsi-single +tags: diff --git a/src/test/run_parse_config_tests.pl b/src/test/run_parse_config_tests.pl index 62e36ee..84602e4 100644 --- a/src/test/run_parse_config_tests.pl +++ b/src/test/run_parse_config_tests.pl @@ -26,7 +26,7 @@ my $OUTPUT_DIR = './parse-config-output'; my $EXPECTED_DIR = './parse-config-expected'; # NOTE update when you add/remove tests -plan tests => 2 * 10; +plan tests => 2 * 11; sub run_tests { my ($strict) = @_;