2007-10-26 22:44:33 +00:00
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::Schema ;
#Note that the SQL is far from imaginative. Fact of the matter is that
#certain SQL backends don't ascribe meaning to the data types anyway.
#New format, not sql statements, but info enough to describe xcat tables
% tabspec = (
2007-11-16 19:52:59 +00:00
ppchcp = > {
cols = > [ qw( hcp username password comments disable ) ] ,
keys = > [ qw( hcp ) ] ,
} ,
ppc = > {
2007-11-19 16:06:54 +00:00
cols = > [ qw( node hcp id profile parent comments disable ) ] ,
2007-11-16 19:52:59 +00:00
keys = > [ qw( node ) ] ,
} ,
2007-11-26 20:30:00 +00:00
ppcDirect = > {
2007-11-16 19:52:59 +00:00
cols = > [ qw( hcp username password comments disable ) ] ,
keys = > [ qw( hcp ) ] ,
} ,
2007-10-26 22:44:33 +00:00
nodetype = > {
cols = > [ qw( node os arch profile comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
nodepos = > {
cols = > [ qw( node rack u chassis slot room comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
2007-11-19 19:45:11 +00:00
iscsi = > {
2007-11-26 20:30:00 +00:00
cols = > [ qw( node server target userid passwd comments disable ) ] ,
keys = > [ qw( node ) ] ,
2007-11-19 19:45:11 +00:00
} ,
2007-10-26 22:44:33 +00:00
vpd = > {
cols = > [ qw( node serial mtm comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
nodehm = > {
cols = > [ qw( node power mgt cons termserver termport conserver serialspeed serialflow getmac comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
hosts = > {
cols = > [ qw( node ip hostnames comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
mp = > {
cols = > [ qw( node mpa id comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
mpa = > {
cols = > [ qw( mpa username password comments disable ) ] ,
keys = > [ qw( mpa ) ] ,
} ,
mac = > {
cols = > [ qw( node interface mac comments disable ) ] ,
keys = > [ qw( node interface ) ] ,
} ,
chain = > {
cols = > [ qw( node currstate currchain chain ondiscover comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
noderes = > {
cols = > [ qw( node servicenode netboot tftpserver nfsserver kernel initrd kcmdline nfsdir serialport installnic primarynic xcatmaster current_osimage next_osimage comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
networks = > {
cols = > [ qw( netname net mask gateway dhcpserver tftpserver nameservers dynamicrange comments disable ) ] ,
keys = > [ qw( net mask ) ]
} ,
2007-11-26 20:30:00 +00:00
osimage = > {
cols = > [ qw( imagename osname osvers osdistro osarch comments disable ) ] ,
keys = > [ qw( imagename ) ]
} ,
nodegroup = > {
cols = > [ qw( groupname grouptype members wherevals comments disable ) ] ,
keys = > [ qw( groupname ) ]
} ,
2007-10-26 22:44:33 +00:00
switch = > {
cols = > [ qw( node switch vlan port comments disable ) ] ,
keys = > [ qw( node switch port ) ]
} ,
nodelist = > {
cols = > [ qw( node nodetype groups comments disable ) ] ,
keys = > [ qw( node ) ] ,
} ,
site = > {
cols = > [ qw( key value comments disable ) ] ,
keys = > [ qw( key ) ]
} ,
2007-11-26 20:30:00 +00:00
# site => {
# cols => [qw(sitename domain master rsh rcp xcatdport installdir comments disable)],
# keys => [qw(sitename)]
# },
2007-10-26 22:44:33 +00:00
passwd = > {
cols = > [ qw( key username password comments disable ) ] ,
keys = > [ qw( key ) ]
} ,
ipmi = > {
cols = > [ qw( node bmc username password comments disable ) ] ,
keys = > [ qw( node ) ]
} ,
policy = > {
cols = > [ qw( priority name host commands noderange parameters time rule comments disable ) ] ,
keys = > [ qw( priority ) ]
} ,
notification = > {
cols = > [ qw( filename tables tableops comments disable ) ] ,
keys = > [ qw( filename ) ] ,
required = > [ qw( tables filename ) ]
}
) ;
####################################################
#
# Data abstraction definitions
# For each table entry added to the database schema,
# a corresponding attribute should be added to one of
# the data objects below, or new data objects should
# be created as needed.
#
# Definition format:
# List of data object hashes:
# <dataobject_name> =>
# {attrs =>
# [ {attr_name => '<attribute_name>',
# only_if => '<attr>=<value>',
# # optional, used to define conditional attributes.
# # <attr> is a previously resolved attribute from
# # this data object.
# tabentry => '<table.attr>',
# # where the data is stored in the database
# access_tabentry => '<table.attr>=<value>',
# # how to look up tabentry. For <value>,
# # if "attr:<attrname>", use a previously resolved
# # attribute value from the data object
# # if "str:<value>" use the value directly
# description => '<description of this attribute>',
# },
# {attr_name => <attribute_name>,
# ...
# } ],
# attrhash => {}, # internally generated hash of attrs array
# # to allow code direct access to an attr def
# objkey => 'attribute_name' # key attribute for this data object
# }
#
#
####################################################
% defspec = (
node = > { attrs = > [] , attrhash = > { } , objkey = > 'node' } ,
osimage = > { attrs = > [] , attrhash = > { } , objkey = > 'imagename' } ,
network = > { attrs = > [] , attrhash = > { } , objkey = > 'netname' } ,
2007-11-26 20:30:00 +00:00
group = > { attrs = > [] , attrhash = > { } , objkey = > 'groupname' } ,
site = > { attrs = > [] , attrhash = > { } , objkey = > 'master' } ,
#site => { attrs => [], attrhash => {}, objkey => 'sitename' },
policy = > { attrs = > [] , attrhash = > { } , objkey = > 'priority' } ,
notification = > { attrs = > [] , attrhash = > { } , objkey = > 'filename' }
2007-10-26 22:44:33 +00:00
) ;
@ { $ defspec { node } - > { 'attrs' } } = (
2007-11-26 20:30:00 +00:00
{ attr_name = > 'node' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodelist.node' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodelist.node=attr:node' ,
description = > 'The name of this node definition.' } ,
{ attr_name = > 'nodetype' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodelist.nodetype' ,
access_tabentry = > 'nodelist.node=attr:node' ,
2007-11-26 20:30:00 +00:00
description = > 'Specifies a comma-separated list of node type values. (Valid values: osi, hmc, fsp, blade, vm, lpar, ivm, bpa, mm, rsa, switch)' } ,
{ attr_name = > 'groups' ,
tabentry = > 'nodelist.groups' ,
access_tabentry = > 'nodelist.node=attr:node' ,
description = > 'Comma separated list of groups this node belongs to.' } ,
{ attr_name = > 'xcatmaster' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'noderes.xcatmaster' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > 'The hostname of the xCAT management node.' } ,
# {attr_name => 'mgtnet',
# tabentry => 'noderes.mgtnet',
# access_tabentry => 'noderes.node=attr:node',
# description => 'The name of the xCAT network definition for this node.'},
{ attr_name = > 'servicenode' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'noderes.servicenode' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'kernel' ,
tabentry = > 'noderes.kernel' ,
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'initrd' ,
tabentry = > 'noderes.initrd' ,
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'kcmdline' ,
tabentry = > 'noderes.kcmdline' ,
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'mgt' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.mgt' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > 'Specifies the hardware management method.' } ,
{ attr_name = > 'power' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.power' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > 'Specifies the power method.' } ,
{ attr_name = > 'cons' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.cons' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > 'Specifies the console method.' } ,
{ attr_name = > 'termserver' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.termserver' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > 'The name of the terminal server.' } ,
{ attr_name = > 'termport' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.termport' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'conserver' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.conserver' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'getmac' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.getmac' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'serialport' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'noderes.serialport' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'serialspeed' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.serialspeed' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'serialflow' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodehm.serialflow' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodehm.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'ip' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'hosts.ip' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'hosts.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'hostnames' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'hosts.hostnames' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'hosts.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'serialnumber' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'vpd.serial' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'vpd.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'mtm' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'vpd.mtm' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'vpd.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'rackloc' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodepos.rack' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodepos.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'unitloc' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodepos.u' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodepos.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'chassisloc' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodepos.chassis' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodepos.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'slotloc' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodepos.slot' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodepos.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'roomloc' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'nodepos.room' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'nodepos.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'usercomment' ,
tabentry = > 'nodelist.comments' ,
access_tabentry = > 'nodelist.node=attr:node' ,
description = > 'User comment.' } ,
{ attr_name = > 'interface' ,
tabentry = > 'mac.interface' ,
access_tabentry = > 'mac.node=attr:node' ,
description = > 'The Ethernet adapter interface name that will be used to install and manage the node. (For example, eth0 or en0.)' } ,
{ attr_name = > 'mac' ,
tabentry = > 'mac.mac' ,
access_tabentry = > 'mac.node=attr:node' ,
description = > 'The machine address of the network adapter used for deployment.' } ,
{ attr_name = > 'currstate' ,
tabentry = > 'chain.currstate' ,
access_tabentry = > 'chain.node=attr:node' ,
description = > '?????' } ,
{ attr_name = > 'currchain' ,
tabentry = > 'chain.currchain' ,
access_tabentry = > 'chain.node=attr:node' ,
description = > '?????' } ,
{ attr_name = > 'chain' ,
tabentry = > 'chain.chain' ,
access_tabentry = > 'chain.node=attr:node' ,
description = > '?????' } ,
{ attr_name = > 'ondiscover' ,
tabentry = > 'chain.ondiscover' ,
access_tabentry = > 'chain.node=attr:node' ,
description = > '?????' } ,
2007-10-26 22:44:33 +00:00
# Conditional attributes:
# OSI node attributes:
2007-11-26 20:30:00 +00:00
{ attr_name = > 'tftpserver' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.tftpserver' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'nfsserver' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.nfsserver' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'nfsdir' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.nfsdir' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'primarynic' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.primarynic' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'installnic' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.installnic' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'netboot' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.netboot' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'current_osimage' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.current_osimage' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
{ attr_name = > 'next_osimage' ,
2007-10-26 22:44:33 +00:00
only_if = > 'nodetype=osi' ,
tabentry = > 'noderes.next_osimage' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'noderes.node=attr:node' ,
description = > '??????.' } ,
2007-10-26 22:44:33 +00:00
# Hardware Control node attributes:
2007-11-26 20:30:00 +00:00
# add hcp username password id profile mgt
{ attr_name = > hcp ,
only_if = > 'mgt=hmc' ,
tabentry = > 'ppc.hcp' ,
access_tabentry = > 'ppc.node=attr:node' ,
description = > 'The host name or IP address of the network interface for the hardware control point.' } ,
{ attr_name = > id ,
only_if = > 'mgt=hmc' ,
tabentry = > 'ppc.id' ,
access_tabentry = > 'ppc.node=attr:node' ,
description = > '?????' } ,
{ attr_name = > profile ,
only_if = > 'mgt=hmc' ,
tabentry = > 'ppc.profile' ,
access_tabentry = > 'ppc.node=attr:node' ,
description = > '?????' } ,
{ attr_name = > id ,
only_if = > 'mgt=hmc' ,
tabentry = > 'ppc.id' ,
access_tabentry = > 'ppc.node=attr:node' ,
description = > '?????' } ,
# {attr_name => hdwctrlpoint,
2007-10-26 22:44:33 +00:00
# only_if => 'mgtmethod=hmc',
# tabentry => 'ppc.hcp',
# access_tabentry => 'ppc.node=attr:node'},
2007-11-26 20:30:00 +00:00
{ attr_name = > hdwctrlpoint ,
2007-10-26 22:44:33 +00:00
only_if = > 'mgtmethod=ipmi' ,
tabentry = > 'ipmi.bmc' ,
access_tabentry = > 'ipmi.node=attr:node' } ,
2007-11-26 20:30:00 +00:00
{ attr_name = > hdwctrlnodeid ,
2007-10-26 22:44:33 +00:00
only_if = > 'mgtmethod=mp' ,
tabentry = > 'mp.id' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'mp.node=attr:node' ,
description = > '??????.' } ,
# {attr_name => hdwctrlnodeid,
2007-10-26 22:44:33 +00:00
# only_if => 'mgtmethod=hmc',
# tabentry => 'ppc.id',
# access_tabentry => 'ppc.node=attr:node'}
) ;
@ { $ defspec { osimage } - > { 'attrs' } } = (
2007-11-26 20:30:00 +00:00
{ attr_name = > 'imagename' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'osimage.imagename' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'osimage.imagename=attr:imagename' ,
description = > 'The name of this operating system image.' } ,
{ attr_name = > 'osdistro' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'osimage.osdistro' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'osimage.imagename=attr:imagename' ,
description = > 'The Linux distribution name to be deployed. The valid values are RedHat, and SLES.' } ,
{ attr_name = > 'osname' ,
tabentry = > 'osimage.osname' ,
access_tabentry = > 'osimage.imagename=attr:imagename' ,
description = > 'The name of the operating system to be deployed. The expected values are AIX or Linux.' } ,
{ attr_name = > 'osvers' ,
tabentry = > 'osimage.osvers' ,
access_tabentry = > 'osimage.imagename=attr:imagename' ,
description = > 'The operating system version to be deployed. The formats for the values are "version.release.mod" for AIX and "version" for Linux. (ex. AIX: "5.3.0", Linux: "5").' } ,
{ attr_name = > 'osarch' ,
tabentry = > 'osimage.osarch' ,
access_tabentry = > 'osimage.imagename=attr:imagename' ,
description = > 'The node machine architecture.' } ,
{ attr_name = > 'usercomment' ,
tabentry = > 'osimage.comments' ,
access_tabentry = > 'osimage.imagename=attr:imagename' ,
description = > 'User comment.' } ,
2007-10-26 22:44:33 +00:00
) ;
@ { $ defspec { network } - > { 'attrs' } } = (
2007-11-26 20:30:00 +00:00
{ attr_name = > 'netname' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.netname' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > 'Name used to identify this network definition.' } ,
{ attr_name = > 'net' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.net' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > '??????.' } ,
{ attr_name = > 'mask' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.mask' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > 'The network mask.' } ,
{ attr_name = > 'gateway' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.gateway' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > 'Specifies the hostname or IP address of the network gateway.' } ,
{ attr_name = > 'dhcpserver' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.dhcpserver' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > '??????.' } ,
{ attr_name = > 'tftpserver' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.tftpserver' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > '??????.' } ,
{ attr_name = > 'nameservers' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.nameservers' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > '??????.' } ,
{ attr_name = > 'dynamicrange' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'networks.dynamicrange' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'networks.netname=attr:netname' ,
description = > '??????.' } ,
{ attr_name = > 'usercomment' ,
tabentry = > 'networks.comments' ,
access_tabentry = > 'networks.netname=attr:netname' ,
description = > 'User comment.' } ,
2007-10-26 22:44:33 +00:00
) ;
@ { $ defspec { site } - > { 'attrs' } } = (
2007-11-26 20:30:00 +00:00
{ attr_name = > 'key' ,
tabentry = > 'site.key' ,
access_tabentry = > 'site.key=attr:key' ,
description = > 'The name of the attribute.' } ,
{ attr_name = > 'value' ,
2007-10-26 22:44:33 +00:00
tabentry = > 'site.value' ,
2007-11-26 20:30:00 +00:00
access_tabentry = > 'site.key=attr:key' ,
description = > 'The value of the attribute.' } ,
{ attr_name = > 'comments' ,
tabentry = > 'site.comments' ,
access_tabentry = > 'site.key=attr:key' ,
description = > 'User comments.' } ,
) ;
#@{$defspec{site}->{'attrs'}} = (
# {attr_name => 'sitename',
# tabentry => 'site.sitename',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'Name of this xCAT cluster site definition.'},
# {attr_name => 'master',
# tabentry => 'site.master',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'The name of the xCAT management node.'},
# {attr_name => 'domain',
# tabentry => 'site.domain',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'The DNS domain name for this cluster.'},
# {attr_name => 'installdir',
# tabentry => 'site.installdir',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'The installation directory.'},
# {attr_name => 'rsh',
# tabentry => 'site.rsh',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'Specifies the path of the remote shell command to use.'},
# {attr_name => 'rcp',
# tabentry => 'site.rcp',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'Specifies the path of the remote copy command to use.'},
# {attr_name => 'xcatdport',
# tabentry => 'site.xcatdport',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'The port used by xcatd daemon running on the xCAT management node.'},
# {attr_name => 'usercomment',
# tabentry => 'site.comments',
# access_tabentry => 'site.sitename=attr:sitename',
# description => 'User comment.'},
# );
2007-10-26 22:44:33 +00:00
2007-11-26 20:30:00 +00:00
@ { $ defspec { group } - > { 'attrs' } } = (
{ attr_name = > 'groupname' ,
tabentry = > 'nodegroup.groupname' ,
access_tabentry = > 'nodegroup.groupname=attr:groupname' ,
description = > 'The name of this xCAT group object definition.' } ,
{ attr_name = > 'grouptype' ,
tabentry = > 'nodegroup.grouptype' ,
access_tabentry = > 'nodegroup.groupname=attr:groupname' ,
description = > 'The type of xCAT group - either "static" or "dynamic".' } ,
{ attr_name = > 'members' ,
tabentry = > 'nodegroup.members' ,
access_tabentry = > 'nodegroup.groupname=attr:groupname' ,
description = > 'The list of members for this group.' } ,
{ attr_name = > 'wherevals' ,
tabentry = > 'nodegroup.wherevals' ,
access_tabentry = > 'nodegroup.groupname=attr:groupname' ,
description = > 'A list of comma-separated "attr=val" pairs that can be used to determine the members of a dynamic group.' } ,
{ attr_name = > 'usercomment' ,
tabentry = > 'nodegroup.comments' ,
access_tabentry = > 'nodegroup.groupname=attr:groupname' ,
description = > 'User comment.' } ,
#
# Node attrs that can be used with static groups - from above!!!!
#
) ;
@ { $ defspec { policy } - > { 'attrs' } } = (
{ attr_name = > 'priority' ,
tabentry = > 'policy.priority' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'name' ,
tabentry = > 'policy.name' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'host' ,
tabentry = > 'policy.host' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'commands' ,
tabentry = > 'policy.commands' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'noderange' ,
tabentry = > 'policy.noderange' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'parameters' ,
tabentry = > 'policy.parameters' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'time' ,
tabentry = > 'policy.time' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'rule' ,
tabentry = > 'policy.rule' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > '??????.' } ,
{ attr_name = > 'usercomment' ,
tabentry = > 'policy.comments' ,
access_tabentry = > 'policy.priority=attr:priority' ,
description = > 'User comment.' } ,
) ;
2007-10-26 22:44:33 +00:00
2007-11-26 20:30:00 +00:00
@ { $ defspec { notification } - > { 'attrs' } } = (
{ attr_name = > 'filename' ,
tabentry = > 'notification.filename' ,
access_tabentry = > 'notification.filename=attr:filename' ,
description = > 'Specifies a file that implements the callback routine when the monitored table changes.' } ,
{ attr_name = > 'tables' ,
tabentry = > 'notification.tables' ,
access_tabentry = > 'notification.filename=attr:filename' ,
description = > 'The name of the xCAT database table to monitor.' } ,
{ attr_name = > 'tableops' ,
tabentry = > 'notification.tableops' ,
access_tabentry = > 'notification.filename=attr:filename' ,
description = > 'Specifies the table operation to monitor. It can be "d" for rows deleted, "a" for rows added or "u" for rows updated.' } ,
{ attr_name = > 'comments' ,
tabentry = > 'notification.comments' ,
access_tabentry = > 'notification.filename=attr:filename' ,
description = > 'User comment.' } ,
) ;