Changeset 2667 in MondoRescue for devel/mr/lib/MondoRescue/Inventory.pm


Ignore:
Timestamp:
Jun 27, 2010, 3:27:16 PM (14 years ago)
Author:
Bruno Cornec
Message:

r3936@dhcp184-49-175-19: bruno | 2010-06-26 09:48:04 +0200

  • Inventory now in better shape. Needs useful and exhaustive content now.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/mr/lib/MondoRescue/Inventory.pm

    r2468 r2667  
    1919use ProjectBuilder::Base;
    2020use ProjectBuilder::Conf;
     21use ProjectBuilder::Distribution;
     22use MondoRescue::LVM;
     23use MondoRescue::Kernel;
    2124
    2225# Inherit from the "Exporter" module which handles exporting functions.
     
    2831
    2932our @ISA = qw(Exporter);
    30 our @EXPORT = qw(mr_exit);
     33our @EXPORT = qw(mr_inv_os $mr_os);
     34
     35# Globals
     36our %mr_hw;
     37our $mr_hw = \%mr_hw;
     38our %mr_os;
     39our $mr_os = \%mr_hw;
    3140
    3241=pod
     
    6675}
    6776
    68 sub mr_inv_hw_context {
     77sub mr_inv_os {
    6978
    70 my %pb;
    71 my ($ddir, $dver, $dfam);
    72 my $cmdline = "/dev/null";
    73 ($ddir, $dver, $dfam, $pb{'dtype'}, $pb{'suf'}, $pb{'upd'}, $pb{'arch'}) = pb_distro_init();
    74 pb_log(2,"DEBUG: distro tuple: ".Dumper($ddir, $dver, $dfam, $pb{'dtype'}, $pb{'suf'})."\n");
     79($mr_os->{'name'}, $mr_os->{'version'}, $mr_os->{'family'}, $mr_os->{'type'}, $mr_os->{'os'}, $mr_os->{'suffix'}, $mr_os->{'update'}, $mr_os->{'arch'}) = pb_distro_init();
    7580
    76 if (($pb{{'dtype'} eq "rpm") || ($pb{{'dtype'} eq "deb") || ($pb{{'dtype'} eq "ebuild") || ($pb{{'dtype'} eq "tgz")) {
    77     cmdline = "/proc/cmdline";
    78 } elsif ($pb{{'dtype'} eq "pkg") {
    79     cmdline = "/proc/cmdline";
     81# Get some conf file content when they exist; Depends on genre or more precise tuple
     82for my $p ("mr_cmdline","mr_fstab","mr_raidtab","mr_swap","mr_partitions","mr_filesystems","mr_modules","mr_xen") {
     83    my $key = $p;
     84    $key =~ s/mr_//;
     85    my ($pp) = pb_conf_get_if($p);
     86    if (defined $pp) {
     87        my $file = pb_distro_get_param($mr_os->{'name'},$mr_os->{'version'},$mr_os->{'arch'},$pp,$mr_os->{'family'},$mr_os->{'type'},$mr_os->{'os'});
     88        if (-r $file) {
     89            pb_log(2,"DEBUG: File found: $file\n");
     90            $mr_os->{'files'}->{$key} = pb_get_content($file);
     91        } else {
     92            pb_log(2,"WARNING: $file not found\n");
     93        }
     94    }
    8095}
    81 return(pb_get_content($cmdline));
     96
     97# Get some commands result content when they exist; Depends on genre or more precise tuple
     98for my $p ("mr_mount","mr_lsmod","mr_df") {
     99    my $key = $p;
     100    $key =~ s/mr_//;
     101    my ($pp) = pb_conf_get_if($p);
     102    if (defined $pp) {
     103        my $cmd = pb_distro_get_param($mr_os->{'name'},$mr_os->{'version'},$mr_os->{'arch'},$pp,$mr_os->{'family'},$mr_os->{'type'},$mr_os->{'os'});
     104        pb_log(2,"DEBUG: Cmd found: $cmd\n");
     105        $mr_os->{'cmd'}->{$key} = `$cmd`;
     106    }
     107}
     108#
     109# LVM setup
     110#
     111($mr_os->{'lvmver'},$mr_os->{'$lvmcmd'}) = mr_lvm_check();
     112
     113# Summary of conf printed.
     114pb_log(1,"OS Inventory: ".Dumper($mr_os)."\n");
    82115}
    83116
Note: See TracChangeset for help on using the changeset viewer.