The schema file is not quite right. Our Sample.pm did not actually go into these details.
In your schema change the following and stop and start xcatd. I added the
comments
##################################################################
# The following %defspec is OPTIONAL. You only need to define it
# if you want your tables to work with xCAT object abstraction layer
# commands such as lsdef, mkdef, chdef and rmdef.
#
# Note: The xCAT database accessting commands such as
# tabdump, chtab, gettab, nodels, nodeadd, nodech, etc.
# still work without it.
#
# Please make sure that any new object name and attribute name
# should start with "x_".
##################################################################
###############
# @nodeattrs ia a list of node attrs that can be used for
# BOTH node and group definitions
##############
#@{$defspec{node}->{'attrs'}} = <- this says on do -t node
my @nodeattrs = <- this will allow -t node and -t group
(
Lissa K. Valletta
8-3/B10
Poughkeepsie, NY 12601
(tie 293) 433-3102
From: "Pocina, Goran" <[email protected]>
To: xCAT Users Mailing list <[email protected]>
Date: 02/13/2013 05:06 PM
Subject: Re: [xcat-user] "lsdef -t group" doesn't list data from custom
tables.
For nodes we normally use lsdef, and it works great, showing our custom
table data whether its assigned at the node level, or via a group.
A “nodegrpls” would be all we’d need, I think, to easily copy groups. I’m
sure we could tweak the output and pipe it to “mkdef –z” to copy groups.
Thanks,
Goran
From: Jarrod B Johnson [mailto:[email protected]]
Sent: Wednesday, February 13, 2013 4:49 PM
To: xCAT Users Mailing list
Subject: Re: [xcat-user] "lsdef -t group" doesn't list data from custom
tables.
I think that the 'object definitions' aren't extensible in the same manner
that the table schema is....
The issue is basically, the tables and columns must be defined. It is an
optional step for developer to describe the way that an object definition
maps to the table. Schema plugins can therefore extend the tables without
extending the object definitions. It's a tad more complicated than I'd
like.....
For nodes, do you normally use nodels or do you prefer lsdef? For nodels
equivalent, I could whip up a 'nodegrpls' in short order. In a more medium
term future, we can probably extend the customization support to allow for
custom object definition attirbutes.
Inactive hide details for "Pocina, Goran" ---02/13/2013 01:34:01 PM---When
we list the attributes of the nodes, everything look"Pocina, Goran"
---02/13/2013 01:34:01 PM---When we list the attributes of the nodes,
everything looks good, whether we’re listing attributes fo
From: "Pocina, Goran" <[email protected]>
To: xCAT Users Mailing list <[email protected]>
Date: 02/13/2013 01:34 PM
Subject: Re: [xcat-user] "lsdef -t group" doesn't list data from custom
tables.
When we list the attributes of the nodes, everything looks good, whether
we’re listing attributes for a single node, or a group of nodes.
The problem occurs when we list the attributes of a group. We should see
some attributes that start with “x_” be we don’t. The group does, in fact,
have additional attributes, but lsdef isn’t showing them.
[root@drdkvm0003 xcat]# lsdef -l -t group -o cm-lev
Object name: cm-lev
addkcmdline=sshd
arch=x86_64
grouptype=static
installnic=eth0
interface=eth0
members=develkv7
mgt=ipmi
netboot=pxe
nfsserver=149.77.53.252
os=centos5.9
postbootscripts=updcentos repo-c59updates/x86_64
postscripts=cm_test,cm-lev repo-anton-v2,desres-fix411
primarynic=eth0
profile=cm-lev
provmethod=install
tftpserver=149.77.53.252
Tabdump shows the group definition, as does the “nodels –b” command in the
initial post:
[root@drdkvm0003 xcat]# tabdump x_desres | grep -E "node|cm-lev"
#node,x_desresrepo,x_v2repo,x_updrepo,x_partinfo,comments,disable
"cm-lev","repo-c5desres","repo-anton-v2-lev","repo-c59updates","part.default",,
From: Lissa Valletta [mailto:[email protected]]
Sent: Wednesday, February 13, 2013 4:16 PM
To: xCAT Users Mailing list
Cc: 'xCAT Users Mailing list'
Subject: Re: [xcat-user] "lsdef -t group" doesn't list data from custom
tables.
I think maybe you are not using the correct form of lsdef You are
listing the attributes of the group (1) Do you not want to do the second
one ( 2).
1)To list all the attributes of the group "service".
lsdef -l -t group -o service
2) To list all the attributes of the nodes that are members of the
group "service".
lsdef -t node -l service
Lissa K. Valletta
8-3/B10
Poughkeepsie, NY 12601
(tie 293) 433-3102
Inactive hide details for "Pocina, Goran" ---02/13/2013 03:50:56 PM---Hi,
We use xCAT's excellent custom table feature to add o"Pocina, Goran"
---02/13/2013 03:50:56 PM---Hi, We use xCAT's excellent custom table
feature to add our own node/group specific table: x_desres.
From: "Pocina, Goran" <[email protected]>
To: "'xCAT Users Mailing list'" <[email protected]>
Date: 02/13/2013 03:50 PM
Subject: [xcat-user] "lsdef -t group" doesn't list data from custom tables.
Hi,
We use xCAT’s excellent custom table feature to add our own node/group
specific table: x_desres. The code
for desres.pm follows at the end. We can pretty much use our custom table
values just as we would
any native xCAT table values, include assigning group names to the “node”
column. Very nice. Here’s
an example of a node that inherits some of its x_desres table values from
the group “cm-lev”. :
[root@drdkvm0003 xCAT]# tabdump -d x_desres # x_desres table
defintion
node: The node.
x_desresrepo: repos to use during build.
x_v2repo: repos to use during build.
x_updrepo: repo to update to after 1st boot.
x_partinfo: Disk partitioning info.
comments: Any user-written notes.
disable: Set to 'yes' or '1' to comment out this row.
[root@drdkvm0003 xCAT]# nodels -b develkv7 x_desres
develkv7: x_desres.x_v2repo: repo-anton-v2-lev (inherited from group
cm-lev)
develkv7: x_desres.x_desresrepo: repo-c5desres (inherited from group
cm-lev)
develkv7: x_desres.x_updrepo: repo-c59updates (inherited from group
cm-lev)
develkv7: x_desres.x_partinfo: part.default (inherited from group
cm-lev)
develkv7: x_desres.node: develkv7
develkv7: x_desres.comments: Do not create part.bogus. It must not
exist. (inherited from group all)
develkv7: x_desres.disable:
[root@drdkvm0003 xCAT]# lsdef -t node develkv7 | tail
. . .
primarynic=eth0
profile=cm-lev
provmethod=install
status=booted
statustime=02-08-2013 10:41:06
tftpserver=149.77.53.252
x_desresrepo=repo-c5desres
x_partinfo=part.default
x_updrepo=repo-c59updates
x_v2repo=repo-anton-v2-lev
However though “lsdef –t node”, above, shows values from x_desres that are
inherited from a group cm-lev, “lsdef –t group cm-dev” doesn’t:
[root@drdkvm0003 xCAT]# lsdef -t group cm-lev
Object name: cm-lev
addkcmdline=sshd
arch=x86_64
grouptype=static
installnic=eth0
interface=eth0
members=develkv7
mgt=ipmi
netboot=pxe
nfsserver=149.77.53.252
os=centos5.9
postbootscripts=updcentos repo-c59updates/x86_64
postscripts=cm_test,cm-lev repo-anton-v2,desres-fix411
primarynic=eth0
profile=cm-lev
provmethod=install
tftpserver=149.77.53.252
This appears to be a display problem only, as the group definition works as
it’s supposed to. Everything
works, and our custom values are accessible at all stages of the build, for
Kickstart preprocessing, via
netcat from a postscripts, etc.
Question 1. Is this a *feature* of “lsdef –t group”, or is this
something we can fix ourselves in our
desres.pm table definition?
Question 2. To copy groups we currently pipe the output of “lsdef –z –t
group” to “mkdef -z”, after
filtering to fix things like group name and membership. If this “lsdef –t
group” behavior is a feature,
is there another way to copy groups that preserves our custom table values?
Thanks,
Goran
PS. Here’s our custom table
definition: /opt/xcat/lib/perl/xCAT_schema/desres.pm
[root@drdkvm0003 xcat]# cat /opt/xcat/lib/perl/xCAT_schema/desres.pm
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT_schema::desres;
#################################################################################
# This is a sample code that contains the user defined user database schema
defination.
# Here is a list of things you can do to add DB tables to xCAT database.
# 1 Copy this file to /opt/xcat/lib/perl/xCAT_schema directory, rename
it
# to your chosen schema name.
. . .
###############################################################################
%tabspec = (
x_desres => {
cols => [qw(node x_desresrepo x_v2repo x_updrepo x_partinfo comments
disable)],
keys => [qw(node)],
required => [qw(node)],
types => {
x_desresrepo => 'TEXT',
x_v2repo => 'TEXT',
x_updrepo => 'TEXT',
x_partinfo => 'TEXT',
},
compress =>'YES',
tablespace =>'XCATTBS32K',
table_desc => 'Stores the node repos.',
descriptions => {
node=> 'The node.',
x_desresrepo => 'repos to use during build.',
x_v2repo => 'repos to use during build.',
x_updrepo => 'repo to update to after 1st boot.',
x_partinfo => 'Disk partitioning info.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this
row.",
},
},
); # end of tabspec definition
##################################################################
# The following %defspec is OPTIONAL. You only need to define it
# if you want your tables to work with xCAT object abstraction layer
# commands such as lsdef, mkdef, chdef and rmdef.
#
# Note: The xCAT database accessting commands such as
# tabdump, chtab, gettab, nodels, nodeadd, nodech, etc.
# still work without it.
#
# Please make sure that any new object name and attribute name
# should start with "x_".
##################################################################
#object 'node' already defined in /opt/xcat/lib/perl/xCAT/Schema.pm.
#Here we just add x_desresrepo, x_v2repo, x_updrepo and x_partinfo
attributes to the node object
@{$defspec{node}->{'attrs'}} =
(
{ attr_name => 'x_desresrepo',
tabentry => 'x_desres.x_desresrepo',
access_tabentry => 'x_desres.node=attr:node',
},
{ attr_name => 'x_v2repo',
tabentry => 'x_desres.x_v2repo',
access_tabentry => 'x_desres.node=attr:node',
},
{ attr_name => 'x_updrepo',
tabentry => 'x_desres.x_updrepo',
access_tabentry => 'x_desres.node=attr:node',
},
{ attr_name => 'x_partinfo',
tabentry => 'x_desres.x_partinfo',
access_tabentry => 'x_desres.node=attr:node',
},
);
1;
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
xCAT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xcat-user
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
xCAT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xcat-user
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
xCAT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xcat-user
<<inline: graycol.gif>>
------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________ xCAT-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/xcat-user
