mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-06-12 08:10:12 +00:00
support mkdef/lsdef --template
This commit is contained in:
@ -26,6 +26,9 @@ SYNOPSIS
|
||||
[\ **-c | -**\ **-compress**\ ] [\ **-**\ **-osimage**\ ] [\ **-**\ **-nics**\ ] [[\ **-w**\ \ *attr*\ ==\ *val*\ ]
|
||||
[\ **-w**\ \ *attr*\ =~\ *val*\ ] ...] [\ *noderange*\ ]
|
||||
|
||||
\ **lsdef**\ [\ **-l | -**\ **-long**\ ] [\ **-a | -**\ **-all**\ ] [\ **-t**\ \ *object-types*\ ] [\ **-z | -**\ **-stanza**\ ]
|
||||
[\ **-i**\ \ *attr-list*\ ] [\ **-**\ **-template**\ [\ *template-object-name*\ ]]
|
||||
|
||||
|
||||
***********
|
||||
DESCRIPTION
|
||||
@ -33,7 +36,7 @@ DESCRIPTION
|
||||
|
||||
|
||||
This command is used to display xCAT object definitions which are stored
|
||||
in the xCAT database.
|
||||
in the xCAT database and xCAT object definition templates shipped in xCAT.
|
||||
|
||||
|
||||
*******
|
||||
@ -101,6 +104,12 @@ OPTIONS
|
||||
|
||||
|
||||
|
||||
\ **-**\ **-template**\ [\ *template-object-name*\ ]
|
||||
|
||||
Show the object definition templates \ *template-object-name*\ shipped in xCAT. If no \ *template-object-name*\ is specified, all the object definition templates of the specified type \ **-t**\ \ *object-types*\ will be listed. Use \ **-a|-**\ **-all**\ option to list all the object definition templates.
|
||||
|
||||
|
||||
|
||||
\ **-**\ **-osimage**\
|
||||
|
||||
Show all the osimage information for the node.
|
||||
@ -376,6 +385,42 @@ EXAMPLES
|
||||
|
||||
|
||||
|
||||
18.
|
||||
|
||||
To list all the object definition templates shipped in xCAT.
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
lsdef --template -a
|
||||
|
||||
|
||||
|
||||
|
||||
19.
|
||||
|
||||
To display the details of "node" object definition template "powerLEnv" shipped in xCAT.
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
lsdef -t node --template powerLEnv
|
||||
|
||||
|
||||
|
||||
|
||||
20.
|
||||
|
||||
To list all the "node" object definition templates shipped in xCAT.
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
lsdef -t node --template
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*****
|
||||
FILES
|
||||
|
@ -21,7 +21,7 @@ SYNOPSIS
|
||||
|
||||
\ **mkdef**\ [\ **-h | -**\ **-help**\ ] [\ **-t**\ \ *object-types*\ ]
|
||||
|
||||
\ **mkdef**\ [\ **-V | -**\ **-verbose**\ ] [\ **-t**\ \ *object-types*\ ] [\ **-o**\ \ *object-names*\ ] [\ **-z | -**\ **-stanza**\ ] [\ **-d | -**\ **-dynamic**\ ] [\ **-f | -**\ **-force**\ ] [[\ **-w**\ \ *attr*\ ==\ *val*\ ] [\ **-w**\ \ *attr*\ =~\ *val*\ ] ...] [\ *noderange*\ ] [\ *attr*\ =\ *val*\ [\ *attr*\ =\ *val...*\ ]] [\ **-u**\ \ **provmethod**\ ={\ **install**\ | \ **netboot**\ | \ **statelite**\ } \ **profile=**\ \ *xxx*\ [\ **osvers=**\ \ *value*\ ] [\ **osarch=**\ \ *value*\ ]]
|
||||
\ **mkdef**\ [\ **-V | -**\ **-verbose**\ ] [\ **-t**\ \ *object-types*\ ] [\ **-**\ **-template**\ \ *template-object-name*\ ] [\ **-o**\ \ *object-names*\ ] [\ **-z | -**\ **-stanza**\ ] [\ **-d | -**\ **-dynamic**\ ] [\ **-f | -**\ **-force**\ ] [[\ **-w**\ \ *attr*\ ==\ *val*\ ] [\ **-w**\ \ *attr*\ =~\ *val*\ ] ...] [\ *noderange*\ ] [\ *attr*\ =\ *val*\ [\ *attr*\ =\ *val...*\ ]] [\ **-u**\ \ **provmethod**\ ={\ **install**\ | \ **netboot**\ | \ **statelite**\ } \ **profile=**\ \ *xxx*\ [\ **osvers=**\ \ *value*\ ] [\ **osarch=**\ \ *value*\ ]]
|
||||
|
||||
|
||||
***********
|
||||
@ -82,6 +82,12 @@ OPTIONS
|
||||
|
||||
|
||||
|
||||
\ **-**\ **-template**\ \ *template-object-name*\
|
||||
|
||||
Name of the xCAT shipped object definition template or an existing object, from which the new object definition will be created from. The newly created object will inherit the attributes of the template definition unless the attribute is specified in the arguments of \ **mkdef**\ command. For the details of xCAT shipped object definition templates, please refer to the manpage of \ **-**\ **-template**\ option in lsdef(1)|lsdef.1.
|
||||
|
||||
|
||||
|
||||
\ **-V|-**\ **-verbose**\
|
||||
|
||||
Verbose mode.
|
||||
@ -280,6 +286,30 @@ EXAMPLES
|
||||
|
||||
|
||||
|
||||
13
|
||||
|
||||
To create a PowerLE kvm node definition with the xCAT shipped template "powerLEkvm".
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
mkdef -t node cn1 --template powerLEkvm ip=1.1.1.1 mac=42:3d:0a:05:27:0b vmhost=1.1.0.1 vmnics=br0
|
||||
|
||||
|
||||
|
||||
|
||||
14
|
||||
|
||||
To create a node definition from an existing node definition "cn1"
|
||||
|
||||
|
||||
.. code-block:: perl
|
||||
|
||||
mkdef -t node cn2 --template cn1 ip=1.1.1.2 mac=42:3d:0a:05:27:0c
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*****
|
||||
FILES
|
||||
|
@ -11,11 +11,13 @@ B<lsdef> [B<-V>|B<--verbose>] [B<-l>|B<--long>] [B<-s>|B<--short>] [B<-a>|B<--al
|
||||
[B<-c>|B<--compress>] [B<--osimage>] [B<--nics>] [[B<-w> I<attr>==I<val>]
|
||||
[B<-w> I<attr>=~I<val>] ...] [I<noderange>]
|
||||
|
||||
B<lsdef> [B<-l>|B<--long>] [B<-a>|B<--all>] [B<-t> I<object-types>] [B<-z>|B<--stanza>]
|
||||
[B<-i> I<attr-list>] [B<--template> [I<template-object-name>]]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This command is used to display xCAT object definitions which are stored
|
||||
in the xCAT database.
|
||||
in the xCAT database and xCAT object definition templates shipped in xCAT.
|
||||
|
||||
|
||||
=head1 OPTIONS
|
||||
@ -63,6 +65,10 @@ See the "noderange" man page for details on supported formats.
|
||||
|
||||
A set of comma delimited object names.
|
||||
|
||||
=item B<--template> [I<template-object-name>]
|
||||
|
||||
Show the object definition templates I<template-object-name> shipped in xCAT. If no I<template-object-name> is specified, all the object definition templates of the specified type B<-t> I<object-types> will be listed. Use B<-a|--all> option to list all the object definition templates.
|
||||
|
||||
=item B<--osimage>
|
||||
|
||||
Show all the osimage information for the node.
|
||||
@ -222,6 +228,24 @@ To display the nics configuration information for node cn1.
|
||||
|
||||
lsdef cn1 --nics
|
||||
|
||||
=item 18.
|
||||
|
||||
To list all the object definition templates shipped in xCAT.
|
||||
|
||||
lsdef --template -a
|
||||
|
||||
=item 19.
|
||||
|
||||
To display the details of "node" object definition template "powerLEnv" shipped in xCAT.
|
||||
|
||||
lsdef -t node --template powerLEnv
|
||||
|
||||
=item 20.
|
||||
|
||||
To list all the "node" object definition templates shipped in xCAT.
|
||||
|
||||
lsdef -t node --template
|
||||
|
||||
=back
|
||||
|
||||
=head1 FILES
|
||||
|
@ -6,12 +6,12 @@ B<mkdef> - Use this command to create xCAT data object definitions.
|
||||
|
||||
B<mkdef> [B<-h>|B<--help>] [B<-t> I<object-types>]
|
||||
|
||||
B<mkdef> [B<-V>|B<--verbose>] [B<-t> I<object-types>] [B<-o> I<object-names>] [B<-z>|B<--stanza>] [B<-d>|B<--dynamic>] [B<-f>|B<--force>] [[B<-w> I<attr>==I<val>] [B<-w> I<attr>=~I<val>] ...] [I<noderange>] [I<attr>=I<val> [I<attr>=I<val...>]] [B<-u> B<provmethod>={B<install> | B<netboot> | B<statelite>} B<profile=> I<xxx> [B<osvers=> I<value>] [B<osarch=> I<value>]]
|
||||
B<mkdef> [B<-V>|B<--verbose>] [B<-t> I<object-types>] [B<--template> I<template-object-name>] [B<-o> I<object-names>] [B<-z>|B<--stanza>] [B<-d>|B<--dynamic>] [B<-f>|B<--force>] [[B<-w> I<attr>==I<val>] [B<-w> I<attr>=~I<val>] ...] [I<noderange>] [I<attr>=I<val> [I<attr>=I<val...>]] [B<-u> B<provmethod>={B<install> | B<netboot> | B<statelite>} B<profile=> I<xxx> [B<osvers=> I<value>] [B<osarch=> I<value>]]
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This command is used to create xCAT object definitions which are stored in the xCAT database. If the definition already exists it will return an error message. The force option may be used to re-create a definition. In this case the old definition will be remove and the new definition will be created.
|
||||
This command is used to create xCAT object definitions which are stored in the xCAT database. If the definition already exists it will return an error message. The force option may be used to re-create a definition. In this case the old definition will be remove and the new definition will be created.
|
||||
|
||||
|
||||
=head1 OPTIONS
|
||||
@ -48,6 +48,10 @@ A set of comma delimited object names.
|
||||
|
||||
A set of comma delimited object types. Use the help option to get a list of valid object types.
|
||||
|
||||
=item B<--template> I<template-object-name>
|
||||
|
||||
Name of the xCAT shipped object definition template or an existing object, from which the new object definition will be created from. The newly created object will inherit the attributes of the template definition unless the attribute is specified in the arguments of B<mkdef> command. For the details of xCAT shipped object definition templates, please refer to the manpage of B<--template> option in L<lsdef(1)|lsdef.1>.
|
||||
|
||||
=item B<-V|--verbose>
|
||||
|
||||
Verbose mode.
|
||||
@ -163,6 +167,18 @@ To create an osimage definition and fill in attributes automatically.
|
||||
|
||||
mkdef redhat6img -u profile=compute provmethod=statelite
|
||||
|
||||
=item 13
|
||||
|
||||
To create a PowerLE kvm node definition with the xCAT shipped template "powerLEkvm".
|
||||
|
||||
mkdef -t node cn1 --template powerLEkvm ip=1.1.1.1 mac=42:3d:0a:05:27:0b vmhost=1.1.0.1 vmnics=br0
|
||||
|
||||
=item 14
|
||||
|
||||
To create a node definition from an existing node definition "cn1"
|
||||
|
||||
mkdef -t node cn2 --template cn1 ip=1.1.1.2 mac=42:3d:0a:05:27:0c
|
||||
|
||||
=back
|
||||
|
||||
|
||||
|
@ -604,20 +604,42 @@ sub processArgs
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
||||
#it is illegal to specify no object template for "mkdef --template",
|
||||
if($::command eq "mkdef" and defined $::opt_template and !$::opt_template){
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "no object definition template specified for mkdef --template!";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::callback);
|
||||
return 2;
|
||||
}
|
||||
|
||||
if($::opt_template){
|
||||
#for mkdef --template <object templates>, multiple template/nodes are illegal
|
||||
if($::opt_template =~ /,/ and $::command eq "mkdef"){
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "mkdef: multiple templates specified!";
|
||||
$rsp->{data}->[0] = "Only 1 template object definition should be specified for mkdef!";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::callback);
|
||||
return 2;
|
||||
}
|
||||
|
||||
#when --template is specified,
|
||||
#the piped stdin, such as "cat xx.stanza|mkdef -z -t node --template ...." is not supported
|
||||
if($::filedata){
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "The file input can not be used with --template option!";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::callback);
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (defined $::opt_template and ($::command eq "mkdef" or $::command eq "lsdef")){
|
||||
#all the xCAT shipped object definition templates are installed
|
||||
#under directory /opt/xcat/share/xcat/templates/objects/<object-type>/
|
||||
my $objtmpldir="$::XCATROOT/share/xcat/templates/objects/";
|
||||
|
||||
|
||||
#the path list to search the object definition templates
|
||||
#for specified object types,the path is like /opt/xcat/share/xcat/templates/objects/<object-type>/
|
||||
#for "-a" option, the path is /opt/xcat/share/xcat/templates/objects/
|
||||
my @tmpldirlist;
|
||||
if($::command eq "lsdef"){
|
||||
if (!$::opt_a){
|
||||
@ -628,15 +650,24 @@ sub processArgs
|
||||
}
|
||||
}
|
||||
}else{
|
||||
#if "-a" is specified, read all the object templates
|
||||
#under /opt/xcat/share/xcat/templates/objects/
|
||||
push(@tmpldirlist,$objtmpldir);
|
||||
}
|
||||
}elsif($::command eq "mkdef"){
|
||||
if($::opt_t){
|
||||
push(@tmpldirlist,$objtmpldir.$::opt_t);
|
||||
}else{
|
||||
#if "-t" is not specified, take the object type as "node"
|
||||
push(@tmpldirlist,$objtmpldir."node");
|
||||
}
|
||||
}
|
||||
|
||||
#walk through the path list and get all the object templates file content;
|
||||
#for "lsdef -a --template" read all the content of template files
|
||||
#under "/opt/xcat/share/xcat/templates/objects/";
|
||||
#if "-a" is not specified, read the template files content
|
||||
#under "/opt/xcat/share/xcat/templates/objects/<object type>"
|
||||
my $objfiledata;
|
||||
find(\&wanted,@tmpldirlist);
|
||||
sub wanted{
|
||||
@ -649,7 +680,9 @@ sub processArgs
|
||||
close(FH)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#save the template definitions in global variable $::filedata
|
||||
#for the later parse
|
||||
$::filedata=$objfiledata;
|
||||
}
|
||||
|
||||
@ -804,11 +837,15 @@ sub processArgs
|
||||
}
|
||||
|
||||
#
|
||||
# process the input file - if provided
|
||||
# process the input file or object definition template files - if provided
|
||||
#
|
||||
if ($::filedata)
|
||||
{
|
||||
|
||||
|
||||
#parse the $::filedata and initialize the following global variables
|
||||
# %::FILEATTRS : a global hash with the strcture <node>=>{<attributes>=><values>}
|
||||
# @::fileobjtypes : a list of the object types in %::FILEATTRS
|
||||
# @::fileobjnames : a list of the object names in %::FILEATTRS
|
||||
my $rc = xCAT::DBobjUtils->readFileInput($::filedata);
|
||||
|
||||
if ($rc)
|
||||
@ -816,10 +853,13 @@ sub processArgs
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "Could not process file input data.";
|
||||
xCAT::MsgUtils->message("I", $rsp, $::callback);
|
||||
return 1;
|
||||
return 3;
|
||||
}
|
||||
|
||||
if($::opt_template){
|
||||
#some xCAT shipped object definition templates are specified
|
||||
#like "lsdef/mkdef --template xxxx"
|
||||
#filter out the keys(template name) which are not specified from %::FILEATTRS
|
||||
my %tmpfileattr;
|
||||
my @tmpfileobjtypes;
|
||||
my @tmpfileobjnames;
|
||||
@ -830,26 +870,29 @@ sub processArgs
|
||||
push(@tmpfileobjnames,$key);
|
||||
push(@tmpfileobjtypes,$tmpfileattr{$key}{objtype});
|
||||
}else{
|
||||
delete $::FILEATTRS{$key};
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "Could not find $key in xCAT templates, checking whether it is an existing object definition... ";
|
||||
xCAT::MsgUtils->message("I", $rsp, $::callback);
|
||||
if($::command eq "lsdef"){
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "Could not find $key in xCAT templates.";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::callback);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(@tmpfileobjnames){
|
||||
#flag: some template object definitions are parsed from $::filedata
|
||||
%::FILEATTRS=%tmpfileattr;
|
||||
@::fileobjtypes=@tmpfileobjtypes;
|
||||
@::fileobjnames=@tmpfileobjnames;
|
||||
$::objectsfrom_file = 1;
|
||||
}else{
|
||||
#the specified template can not be found in the pared $::filedata
|
||||
%::FILEATTRS=();
|
||||
@::fileobjtypes=();
|
||||
@::fileobjnames=();
|
||||
}
|
||||
}else{
|
||||
# - %::FILEATTRS{fileobjname}{attr}=val
|
||||
# set @::fileobjtypes, @::fileobjnames, %::FILEATTRS
|
||||
|
||||
#flag: some object definitions are parsed from $::filedata
|
||||
$::objectsfrom_file = 1;
|
||||
}
|
||||
}
|
||||
@ -1260,6 +1303,7 @@ sub processArgs
|
||||
if ($::opt_template && ($::command eq 'mkdef') )
|
||||
{
|
||||
unless($::objectsfrom_file){
|
||||
#"mkdef --template" specifies an existing object as the template to create new object definition
|
||||
my @myobjlist = xCAT::DBobjUtils->getObjectsOfType($::clobjtypes[0]);
|
||||
unless (@myobjlist)
|
||||
{
|
||||
@ -1280,24 +1324,53 @@ sub processArgs
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "The template node cannot be the same as the node to create.";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::callback);
|
||||
return 1;
|
||||
return 3;
|
||||
}
|
||||
|
||||
|
||||
my %objtypehash;
|
||||
$objtypehash{$::opt_template} = $::clobjtypes[0];
|
||||
$::ATTRLIST="all";
|
||||
#the template object is an existing object, get the object definition
|
||||
my %objattrhash = xCAT::DBobjUtils->getobjdefs(\%objtypehash);
|
||||
#the object attributes specified in the arguments of "mkdef" has been saved in %::ATTRS
|
||||
#inherit the attributes not specified in arguments of "mkdef" from the template object definition
|
||||
foreach my $key(keys %{$objattrhash{$::opt_template}}){
|
||||
if($key ne "objtype" and not $::ATTRS{$key}){
|
||||
$::ATTRS{$key}=$objattrhash{$::opt_template}{$key};
|
||||
}
|
||||
}
|
||||
}else{
|
||||
#the object attribute specified in the arguments of "mkdef" has been saved in %::ATTRS
|
||||
#the specified object template definition shipped by xCAT is save in %::FILEATTRS
|
||||
#inherit the attributes which are not specified in arguments of "mkdef" from template
|
||||
#"objtype" is not an object attribite, it is a field in stanza file
|
||||
foreach my $key(keys %{$::FILEATTRS{$::opt_template}}){
|
||||
if($key ne "objtype" and not $::ATTRS{$key}){
|
||||
$::ATTRS{$key}=$::FILEATTRS{$::opt_template}{$key};
|
||||
if($key ne "objtype"){
|
||||
my $temlattr=$::FILEATTRS{$::opt_template}{$key};
|
||||
if($temlattr =~ /^OPTIONAL:/){
|
||||
#the attributes with "(OPTIONAL)" in the template
|
||||
#can be specified on mkdef
|
||||
$temlattr ="";
|
||||
}
|
||||
elsif($temlattr =~ /^MANDATORY:/){
|
||||
unless($::ATTRS{$key}){
|
||||
#the attributes with "(MANDATORY)" in the template
|
||||
#must be specified on mkdef
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "The attribute \"$key\" must be specified!";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::callback);
|
||||
return 3;
|
||||
}
|
||||
$temlattr ="";
|
||||
}
|
||||
|
||||
unless($::ATTRS{$key}){
|
||||
$::ATTRS{$key}=$temlattr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#delete the template definition from %::FILEATTRS
|
||||
delete $::FILEATTRS{$::opt_template};
|
||||
@::fileobjtypes=();
|
||||
@::fileobjnames=();
|
||||
@ -2996,19 +3069,15 @@ sub defls
|
||||
}
|
||||
|
||||
if (defined $::opt_template){
|
||||
|
||||
unless ($::opt_template){
|
||||
#when the "--template" option is specified, but no object template is specified
|
||||
%myhash=%::FILEATTRS;
|
||||
}else{
|
||||
#some object template are specified
|
||||
my @templatelist=split(",",$::opt_template);
|
||||
foreach my $mytemplate (@templatelist){
|
||||
if(exists $::FILEATTRS{$mytemplate}){
|
||||
$myhash{$mytemplate}= \%{$::FILEATTRS{$mytemplate}};
|
||||
}else{
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "Could not find the specified $::opt_t template $mytemplate.";
|
||||
xCAT::MsgUtils->message("I", $rsp, $::callback);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3062,7 +3131,6 @@ sub defls
|
||||
# could be modified by type
|
||||
if ($::opt_t)
|
||||
{
|
||||
|
||||
# get all objects matching type list
|
||||
# Get all object in this type list
|
||||
foreach my $t (@::clobjtypes)
|
||||
@ -3112,7 +3180,9 @@ sub defls
|
||||
{
|
||||
push(@::clobjtypes, $t);
|
||||
}
|
||||
}elsif( defined $::opt_template){
|
||||
}
|
||||
else{
|
||||
#push the unique object types from @::fileobjtypes to @::clobjtypes
|
||||
push @::clobjtypes, keys { map { $_ => 1 } @::fileobjtypes };
|
||||
}
|
||||
} # end - if specify all
|
||||
@ -3140,7 +3210,6 @@ sub defls
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my %nodeosimagehash = ();
|
||||
if ($getnodes)
|
||||
{
|
||||
@ -4169,10 +4238,11 @@ sub defmk_usage
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "\nUsage: mkdef - Create xCAT data object definitions.\n";
|
||||
$rsp->{data}->[1] = " mkdef [-h | --help ] [-t object-types]\n";
|
||||
$rsp->{data}->[2] = " mkdef [-V | --verbose] [-t object-types] [-o object-names] [-z|--stanza ]";
|
||||
$rsp->{data}->[3] = " [-d | --dynamic] [-w attr==val [-w attr=~val] ...]";
|
||||
$rsp->{data}->[4] = " [-f | --force] [noderange] [attr=val [attr=val...]]";
|
||||
$rsp->{data}->[5] = "\nThe following data object types are supported by xCAT.\n";
|
||||
$rsp->{data}->[2] = " mkdef [-V | --verbose] [-t object-types] [--template template-object-name]";
|
||||
$rsp->{data}->[3] = " [-o object-names] [-z|--stanza ]";
|
||||
$rsp->{data}->[4] = " [-d | --dynamic] [-w attr==val [-w attr=~val] ...]";
|
||||
$rsp->{data}->[5] = " [-f | --force] [noderange] [attr=val [attr=val...]]";
|
||||
$rsp->{data}->[6] = "\nThe following data object types are supported by xCAT.\n";
|
||||
my $n = 6;
|
||||
|
||||
foreach my $t (sort(keys %{xCAT::Schema::defspec}))
|
||||
@ -4250,10 +4320,12 @@ sub defls_usage
|
||||
my $rsp;
|
||||
$rsp->{data}->[0] = "\nUsage: lsdef - List xCAT data object definitions.\n";
|
||||
$rsp->{data}->[1] = " lsdef [-h | --help ] [-t object-types]\n";
|
||||
$rsp->{data}->[2] = " lsdef [-V | --verbose] [-t object-types] [-o object-names]";
|
||||
$rsp->{data}->[3] = " [ -l | --long] [-s | --short] [-a | --all] [-z | --stanza ] [-S]";
|
||||
$rsp->{data}->[4] = " [-i attr-list] [-w attr==val [-w attr=~val] ...] [noderange]\n";
|
||||
$rsp->{data}->[5] = "\nThe following data object types are supported by xCAT.\n";
|
||||
$rsp->{data}->[2] = " lsdef [-l|--long] [-a|--all] [-t *object-types*] [-z|--stanza]";
|
||||
$rsp->{data}->[3] = " [-i attr-list] [--template [template-object-name]] \n";
|
||||
$rsp->{data}->[4] = " lsdef [-V | --verbose] [-t object-types] [-o object-names]";
|
||||
$rsp->{data}->[5] = " [ -l | --long] [-s | --short] [-a | --all] [-z | --stanza ] [-S]";
|
||||
$rsp->{data}->[6] = " [-i attr-list] [-w attr==val [-w attr=~val] ...] [noderange]\n";
|
||||
$rsp->{data}->[7] = "\nThe following data object types are supported by xCAT.\n";
|
||||
my $n = 6;
|
||||
|
||||
foreach my $t (sort(keys %{xCAT::Schema::defspec}))
|
||||
|
12
xCAT/templates/objects/node/cec.stanza
Normal file
12
xCAT/templates/objects/node/cec.stanza
Normal file
@ -0,0 +1,12 @@
|
||||
# <the cec definition template>
|
||||
|
||||
cec:
|
||||
objtype=node
|
||||
groups=cec,all
|
||||
hcp="MANDATORY:The hardware control point(HMC) for the node"
|
||||
hwtype=cec
|
||||
mgt=hmc
|
||||
mtm="MANDATORY:The machine type and model number of the node"
|
||||
nodetype=ppc
|
||||
serial="MANDATORY:The serial number of the node"
|
||||
usercomment="the cec definition template"
|
12
xCAT/templates/objects/node/hmc.stanza
Normal file
12
xCAT/templates/objects/node/hmc.stanza
Normal file
@ -0,0 +1,12 @@
|
||||
# <the template for hmc definition >
|
||||
|
||||
hmc:
|
||||
objtype=node
|
||||
groups=hmc
|
||||
hwtype=hmc
|
||||
mgt=hmc
|
||||
nodetype=hmc
|
||||
ip="MANDATORY:the ip address of the hmc"
|
||||
password="MANDATORY:the password of the hmc"
|
||||
username="MANDATORY:the username on the hmc"
|
||||
usercomment="the template for hmc definition"
|
18
xCAT/templates/objects/node/ppc64le.stanza
Normal file
18
xCAT/templates/objects/node/ppc64le.stanza
Normal file
@ -0,0 +1,18 @@
|
||||
# <the template for PowerLE NV node definition>
|
||||
|
||||
ppc64le:
|
||||
objtype=node
|
||||
arch=ppc64le
|
||||
bmc="MANDATORY:The hostname or ip address of the BMC adapater"
|
||||
bmcpassword="MANDATORY:the password of the BMC"
|
||||
bmcusername="MANDATORY:the username of the BMC"
|
||||
cons=ipmi
|
||||
groups=all
|
||||
ip=OPTIONAL:the ip address of the node
|
||||
mac=OPTIONAL:the mac of the node
|
||||
mgt=ipmi
|
||||
netboot=petitboot
|
||||
nodetype=mp
|
||||
serialport=0
|
||||
serialspeed=115200
|
||||
usercomment="the template for PowerLE NV node definition"
|
17
xCAT/templates/objects/node/ppc64lekvmguest.stanza
Normal file
17
xCAT/templates/objects/node/ppc64lekvmguest.stanza
Normal file
@ -0,0 +1,17 @@
|
||||
# <the power LE kvm node definition template>
|
||||
|
||||
ppc64lekvmguest:
|
||||
objtype=node
|
||||
arch=ppc64le
|
||||
groups=all
|
||||
ip="OPTIONAL:the ip address of the kvm guest"
|
||||
mac="OPTIONAL:the mac of the kvm guest"
|
||||
mgt=kvm
|
||||
netboot=grub2
|
||||
vmcpus=2
|
||||
vmhost="MANDATORY:the hostname or ip address of the KVM hypervisor"
|
||||
vmmemory=4096
|
||||
vmnicnicmodel=virtio
|
||||
vmnics="MANDATORY:the hypervisor nics used to create the kvm guest network"
|
||||
vmstorage=dir:///var/lib/libvirt/images
|
||||
usercomment="the power LE kvm node definition template"
|
11
xCAT/templates/objects/node/switch.stanza
Normal file
11
xCAT/templates/objects/node/switch.stanza
Normal file
@ -0,0 +1,11 @@
|
||||
# <the switch definition template>
|
||||
|
||||
switch:
|
||||
objtype=node
|
||||
groups=switch
|
||||
ip="OPTIONAL:the ip address of the switch"
|
||||
mac="OPTIONAL:the MAC address of the switch"
|
||||
mgt=switch
|
||||
nodetype=switch
|
||||
switchtype="OPTIONAL:The type of switch. It is used to identify the file name that implements the functions for this swithc. The valid values are: Mellanox, Cisco, BNT and Juniper."
|
||||
usercomment="the switch definition template"
|
19
xCAT/templates/objects/node/x86_64.stanza
Normal file
19
xCAT/templates/objects/node/x86_64.stanza
Normal file
@ -0,0 +1,19 @@
|
||||
# <the system X node definition>
|
||||
|
||||
x86_64:
|
||||
objtype=node
|
||||
arch=x86_64
|
||||
bmc="MANDATORY:The hostname or ip address of the BMC adapater"
|
||||
bmcpassword="MANDATORY:the password of the BMC"
|
||||
bmcusername="MANDATORY:the username of the BMC"
|
||||
cons=ipmi
|
||||
getmac=ipmi
|
||||
groups=all
|
||||
hcp=
|
||||
ip="OPTIONAL:the ip address of the node"
|
||||
mac="OPTIONAL:the mac of the node"
|
||||
mgt=ipmi
|
||||
netboot=xnba
|
||||
serialport=0
|
||||
serialspeed=115200
|
||||
usercomment="the system X node definition"
|
19
xCAT/templates/objects/node/x86_64kvmguest.stanza
Normal file
19
xCAT/templates/objects/node/x86_64kvmguest.stanza
Normal file
@ -0,0 +1,19 @@
|
||||
# <the system X kvm node definition>
|
||||
|
||||
x86_64kvmguest:
|
||||
objtype=node
|
||||
arch=x86_64
|
||||
groups=all
|
||||
ip="OPTIONAL:the ip address of the kvm guest"
|
||||
mac="OPTIONAL:the mac of the kvm guest"
|
||||
mgt=kvm
|
||||
netboot=xnba
|
||||
serialport=0
|
||||
serialspeed=115200
|
||||
vmcpus=2
|
||||
vmhost="MANDATORY:the hostname or ip address of the KVM hypervisor"
|
||||
vmmemory=4096
|
||||
vmnicnicmodel=virtio
|
||||
vmnics="MANDATORY:the hypervisor nics used to create the kvm guest network"
|
||||
vmstorage=dir:///var/lib/libvirt/images
|
||||
usercomment="the system X kvm node definition"
|
Reference in New Issue
Block a user