2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-05-17 19:57:18 +00:00
Files
xcat-core/xCAT-test/unit/dbobjutils_only_if.t
T
2026-05-06 20:40:38 -03:00

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();