TT#108502 Refactor Debian release information gathering

Change get_debian_release into set_debian_info, and make the former call
the latter.

This new library will populate debian.version and debian.codename from
the current system.

Change-Id: If0d5ed6da359b35e9ef4a6135944c3a7a58848c1
mr9.3
Guillem Jover 4 years ago
parent cdfb5a8f3d
commit fdac9467a1

@ -4,25 +4,10 @@
# Returns the Debian release codename of the node calling this function. # Returns the Debian release codename of the node calling this function.
# #
# @return out The Debian release codename of the node calling this function. # @return out The Debian release codename of the node calling this function.
# XXX: This is a deprecated alias for set_debian_info.
PROCESS '/usr/lib/ngcp-ngcpcfg/set_debian_info';
out = debian.codename;
-%] -%]
[% PERL -%]
open my $hh, '<', '/etc/debian_version' or die "Error opening /etc/debian_version";
my $debian_version = <$hh>;
my $debian_codename;
close $hh;
chomp $debian_version;
if ($debian_version =~ /^8\.*/) {
$debian_codename = 'jessie';
} elsif ($debian_version =~ /^9\.*/) {
$debian_codename = 'stretch';
} elsif ($debian_version =~ /^10\.*/) {
$debian_codename = 'buster';
} elsif ($debian_version =~ /^11\.*/) {
$debian_codename = 'bullseye';
} elsif ($debian_version =~ /^[[:alnum:]]+\.*\/sid/) {
$debian_codename = (split /\//, $debian_version, 2)[0];
}
die "Fatal error retrieving Debian release codename [$debian_codename]" unless length $debian_codename;
die "Fatal error retrieving Debian release version [$debian_version]" unless length $debian_version;
$stash->set(out => $debian_codename);
[% END -%]

@ -0,0 +1,51 @@
[%
# vi: ft=tt2
# Sets the Debian release information for the node calling this function.
#
# This sets the global variables:
# debian.codename
# debian.version
-%]
[% PERL -%]
my $version_file = '/etc/debian_version';
my $debian_codename;
my $debian_version;
my $debian_version_major;
open my $hh, '<', $version_file or die "Error opening $version_file";
$debian_version = <$hh>;
close $hh;
chomp $debian_version;
die "Fatal error retrieving Debian release version from $version_file"
unless length $debian_version;
my %versions = (
8 => 'jessie',
9 => 'stretch',
10 => 'buster',
11 => 'bullseye',
);
my %codenames = map { $versions{$_} => $_ } keys %versions;
if ($debian_version =~ m/^([0-9]+)\.[0-9]+/) {
$debian_version_major = $1;
$debian_codename = $versions{$debian_version_major};
die "Error: unsupported Debian release $debian_version"
unless defined $debian_codename;
} elsif ($debian_version =~ m{^([[:alnum:]]+)/sid}) {
$debian_codename = $1;
$debian_version_major = $codenames{$debian_codename};
die "Error: unsupported Debian codename $debian_codename"
unless defined $debian_version_major;
} else {
die "Fatal error retrieving Debian release codename [$debian_version]";
}
$stash->update({
debian => {
version => $debian_version_major,
codename => $debian_codename,
}
});
[% END -%]
Loading…
Cancel
Save