=head1 NAME

B<nodels> - lists the nodes, and their attributes, from the xCAT database.


=head1 SYNOPSIS

B<nodels> [I<noderange>] [B<-H> | B<--with-fieldname>] [I<table.column> | I<shortname>] [I<...>]

B<nodels> [I<noderange>] [B<-H> | B<--with-fieldname>] [I<table>]

B<nodels> [B<-?> | B<-h> | B<--help> | B<-v> | B<--version>]


=head1 DESCRIPTION

The B<nodels> command lists the nodes specified in the node range. If no noderange is provided, then all nodes are listed.

Additional attributes of the nodes will also be displayed if the table names and attribute names
are specified after the noderange in the form:  I<table.column> .  A few shortcut names can
also be used as aliases to common attributes:

=over 15

=item B<groups>

nodelist.groups

=item B<tags>

nodelist.groups

=item B<mgt>

nodehm.mgt

=back

nodels can also select based on table value criteria. The following operators are available: 

=over 15

=item B<==>

Select nodes where the table.column value is exactly a certain value.

=item B<!=>

Select nodes where the table.column value is not a given specific value.

=item B<=~>

Select nodes where the table.column value matches a given regular expression.

=item B<!~>

Select nodes where the table.column value does not match a given regular expression.

=back


The B<nodels> command with a specific node and one or more table.attribute parameters is a good substitute
for grep'ing through the tab files, as was typically done in xCAT 1.x.  This is because nodels will translate
any regular expression rows in the tables into their meaning for the specified node.  The tab* commands
will not do this, instead they will just display the regular expression row verbatim.


=head1 OPTIONS

=over 10

=item B<-v|--version>

Command Version.

=item B<-H|--with-fieldname>

Force display of table name and column name context for each result

=item B<-?|-h|--help>

Display usage message.

=back


=head1 RETURN VALUE

=over 3

=item 0

The command completed successfully.

=item 1

An error has occurred.

=back


=head1 EXAMPLES

=over 3

=item 1.

To list all defined nodes, enter:

 nodels

Output is similar to:

   node1
   node2
   node3

=item 2.

To list all defined attributes in a table for a node or noderange, enter:

 nodels rra001a noderes

Output is similar to:

   rra001a: noderes.primarynic: eth0
   rra001a: noderes.xcatmaster: rra000
   rra001a: noderes.installnic: eth0
   rra001a: noderes.netboot: pxe
   rra001a: noderes.servicenode: rra000
   rra001a: noderes.node: rra001a


=item 3.

To list nodes in node group ppc, enter:

 nodels ppc

Output is similar to:

   ppcnode1
   ppcnode2
   ppcnode3

=item 4.

To list the groups each node is part of:

 nodels all groups

Output is similar to:

   node1: groups: all
   node2: groups: all,storage
   node3: groups: all,blade

=item 5.

To list the groups each node is part of:

 nodels all nodehm.power

Output is similar to:

   node1: nodehm.power: blade
   node2: nodehm.power: ipmi
   node3: nodehm.power: ipmi

=item 6.

To list the out-of-band mgt method for blade1:

 nodels blade1 nodehm.mgt

Output is similar to:

   blade1: blade

=item 7.

Listing blades managed through an AMM named 'amm1'

 nodels all mp.mpa==amm1

Output is similar to:

   blade1
   blade10
   blade11
   blade12
   blade13
   blade2
   blade3
   blade4
   blade5
   blade6
   blade7
   blade8
   blade9

=item 8.

Listing the switch.switch value for nodes in the second rack:

 nodels all nodepos.rack==2 switch.switch

Output is similar to:
   n41: switch.switch: switch2
   n42: switch.switch: switch2
   n43: switch.switch: switch2
   n44: switch.switch: switch2
   n45: switch.switch: switch2
   n46: switch.switch: switch2
   n47: switch.switch: switch2
   n55: switch.switch: switch2
   n56: switch.switch: switch2
   n57: switch.switch: switch2
   n58: switch.switch: switch2
   n59: switch.switch: switch2
   n60: switch.switch: switch2

=item 9.

Listing the blade slot number for anything managed through a device with a name beginning with amm:

 nodels all mp.mpa=~/^amm.*/ mp.id

Output looks like:
   blade1: mp.id: 1
   blade10: mp.id: 10
   blade11: mp.id: 11
   blade12: mp.id: 12
   blade13: mp.id: 13
   blade2: mp.id: 2
   blade3: mp.id: 3
   blade4: mp.id: 4
   blade5: mp.id: 5
   blade6: mp.id: 6
   blade7: mp.id: 7
   blade8: mp.id: 8
   blade9: mp.id: 9



=back


=head1 FILES

/opt/xcat/bin/nodels


=head1 SEE ALSO

L<noderange(3)|noderange.3>, L<tabdump(8)|tabdump.8>, L<lsdef(1)|lsdef.1>