mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-05-17 19:57:18 +00:00
53 lines
1.5 KiB
Perl
53 lines
1.5 KiB
Perl
#!/usr/bin/env perl
|
|
use strict;
|
|
use warnings;
|
|
|
|
BEGIN {
|
|
$ENV{XCATCFG} ||= 'SQLite:/tmp';
|
|
}
|
|
|
|
use FindBin;
|
|
use lib "$FindBin::Bin/../../perl-xCAT";
|
|
|
|
use Test::More;
|
|
|
|
use xCAT::DBobjUtils;
|
|
|
|
my %missing_mgt = (
|
|
objtype => 'node',
|
|
groups => 'test',
|
|
bmc => '10.0.0.1',
|
|
);
|
|
my @failures = xCAT::DBobjUtils->validate_only_if_attrs('node01', 'node', \%missing_mgt, {});
|
|
is(scalar @failures, 1, 'bmc without mgt fails only_if validation');
|
|
like($failures[0]->{message}, qr/mgt value is .*openbmc/, 'failure explains accepted mgt values');
|
|
|
|
my %explicit_openbmc = (
|
|
objtype => 'node',
|
|
groups => 'test',
|
|
mgt => 'openbmc',
|
|
bmc => '10.0.0.1',
|
|
);
|
|
@failures = xCAT::DBobjUtils->validate_only_if_attrs('node01', 'node', \%explicit_openbmc, {});
|
|
is(scalar @failures, 0, 'explicit mgt=openbmc satisfies bmc only_if validation');
|
|
|
|
my %existing_openbmc = (
|
|
objtype => 'node',
|
|
groups => 'test',
|
|
bmc => '10.0.0.1',
|
|
);
|
|
my %dbattrs = (mgt => 'openbmc');
|
|
@failures = xCAT::DBobjUtils->validate_only_if_attrs('node01', 'node', \%existing_openbmc, \%dbattrs);
|
|
is(scalar @failures, 0, 'existing mgt=openbmc satisfies bmc only_if validation');
|
|
|
|
my %group_openbmc = (
|
|
objtype => 'node',
|
|
groups => 'openbmcgrp',
|
|
bmc => '10.0.0.1',
|
|
);
|
|
my %groupattrs = (openbmcgrp => { mgt => 'openbmc' });
|
|
@failures = xCAT::DBobjUtils->validate_only_if_attrs('node01', 'node', \%group_openbmc, {}, \%groupattrs);
|
|
is(scalar @failures, 0, 'group mgt=openbmc satisfies bmc only_if validation');
|
|
|
|
done_testing();
|