fix for bug 3208: exclude eventlog and auditlog with lsdef -a, performance improvements for lsdef -t eventlog and lsdef -t auditlog

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14532 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
ligc 2012-12-04 05:52:20 +00:00
parent d4ba1a7dd8
commit 426c34f342
2 changed files with 11 additions and 7 deletions

View File

@ -396,13 +396,13 @@ sub getobjdefs
xCAT::MsgUtils->message("E", $rsp, $::callback);
}
}
} elsif ($objtype eq 'auditlog') {
# Special case for auditlog
# All the auditlog attributes are in auditlog table,
} elsif (($objtype eq 'auditlog') || ($objtype eq 'eventlog')) {
# Special case for auditlog/eventlog
# All the auditlog/eventlog attributes are in auditlog/eventlog table,
# Do not need to read the table multiple times for each attribute.
# The auditlog is likely be very big over time,
# The auditlog/eventlog is likely be very big over time,
# performance is a big concern with the general logic
my @TableRowArray = xCAT::DBobjUtils->getDBtable('auditlog');
my @TableRowArray = xCAT::DBobjUtils->getDBtable($objtype);
foreach my $objname (sort @{$type_obj{$objtype}}) {
if (@TableRowArray)
{
@ -418,7 +418,7 @@ sub getobjdefs
if (defined($entry->{$k}) ) {
$foundinfo++;
if ($verbose == 1) {
$objhash{$objname}{$k} = "$entry->{$k}\t(Table:auditlog - Key:$k)";
$objhash{$objname}{$k} = "$entry->{$k}\t(Table:$objtype - Key:$k)";
} else {
$objhash{$objname}{$k} = $entry->{$k};
}
@ -426,7 +426,7 @@ sub getobjdefs
}
if ($foundinfo)
{
$objhash{$objname}{'objtype'} = 'auditlog';
$objhash{$objname}{'objtype'} = $objtype;
}
# There should not be multiple entries with the same recid
last;

View File

@ -803,6 +803,10 @@ sub processArgs
# for every type of data object get the list of defined objects
foreach my $t (keys %{xCAT::Schema::defspec})
{
# exclude the auditlog and eventlog,
# the auditlog and eventlog tables might be very big
# use lsdef -t auditlog or lsdef -t eventlog instead
if (($t eq 'auditlog') || ($t eq 'eventlog')) { next; }
$::objectsfrom_opta = 1;