Changeset 2667 in MondoRescue for devel/mr/lib


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.
Location:
devel/mr/lib/MondoRescue
Files:
1 added
2 edited

Legend:

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

    r2666 r2667  
    117117=item B<mr_conf_get>
    118118
    119 This function get parameters in configuration files and returns from the least significant level (default) to the emost significant level (application name), passing by the project name.
     119This function get parameters in configuration files and returns from the least significant level (default) to the most significant level (application name), passing by the project name.
    120120It takes a list of parameters to find and returns the values corresponding
    121121
  • 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.