[pve-devel] [PATCH container v2 2/4] fix os-release mapping for similar flavoured distros
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Aug 22 15:43:23 CEST 2017
This avoid failing the check where the auto detected type differs
from the configs ostype.
Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
changes v1 -> v2:
* replace regex with simple checks to already available info, this moves the
fixup into "autodetect_type" where it fits better
* warn not die on the check, dying here does not gains anything for the user
- Inform him that something maybe wrong. Allows situtations where a user
wants a unmanaged CT but autodetect_type would still detect a known one
in it.
src/PVE/LXC/Setup.pm | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/PVE/LXC/Setup.pm b/src/PVE/LXC/Setup.pm
index a503461..9b91539 100644
--- a/src/PVE/LXC/Setup.pm
+++ b/src/PVE/LXC/Setup.pm
@@ -20,18 +20,23 @@ my $plugins = {
centos => 'PVE::LXC::Setup::CentOS',
fedora => 'PVE::LXC::Setup::Fedora',
opensuse => 'PVE::LXC::Setup::SUSE',
- sles => 'PVE::LXC::Setup::SUSE',
archlinux => 'PVE::LXC::Setup::ArchLinux',
- arch => 'PVE::LXC::Setup::ArchLinux',
alpine => 'PVE::LXC::Setup::Alpine',
gentoo => 'PVE::LXC::Setup::Gentoo',
};
+# a map to allow supporting related distro flavours
+my $plugin_alias = {
+ arch => 'archlinux',
+ sles => 'opensuse',
+};
+
my $autodetect_type = sub {
my ($self, $rootdir, $os_release) = @_;
if (my $id = $os_release->{ID}) {
- return $id if $id =~ /^(?:alpine|arch|centos|debian|fedora|gentoo|opensuse|sles|ubuntu)$/;
+ return $id if $plugins->{$id};
+ return $plugin_alias->{$id} if $plugin_alias->{$id};
}
# fallback compatibility checks
@@ -78,7 +83,7 @@ sub new {
$type = &$autodetect_type($self, $rootdir, $os_release);
my $expected_type = $conf->{ostype} || $type;
- die "got unexpected ostype ($type != $expected_type)\n"
+ warn "got unexpected ostype ($type != $expected_type)\n"
if $type ne $expected_type;
}
--
2.11.0
More information about the pve-devel
mailing list