2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-05 20:47:55 +00:00
Commit Graph

18 Commits

Author SHA1 Message Date
Vinícius Ferrão 7836a2577a fix(confluent): retract the switch topology that xCAT no longer holds
A confluent attribute update keeps every attribute that the request does not
name. The export only named the attributes that the switch table holds, so a
switch row that is deleted stayed in confluent, and an interface that is
renamed left the attributes of the old name beside the attributes of the new
one. Confluent then holds two ports for one node, which defeats the discovery
that this export exists for.

Name the topology attributes that the switch table no longer holds, with no
value, so that confluent removes them. Confluent removes the attributes that
the request names with no value before it sets the rest of the request, and it
accepts a wildcard for the attributes of every interface. The wildcard does
not match the attributes that carry no interface, so those are named on their
own.

A node that confluent does not hold yet has nothing to remove, so the request
that creates a node is unchanged.

A confluent that accepts a wildcard in the name of an attribute arrived in
3.4.0. An older confluent reads the name as the name of one attribute, finds
no attribute of that name and reports nothing. The topology of an interface
that is gone then stays, as it does today.
2026-08-27 17:57:56 -03:00
Vinícius Ferrão 31daf134e2 fix(confluent): read the enclosure of a node from the mp table
makeconfluentcfg exports enclosure.manager and enclosure.bay from the mpa
and id columns. Those columns belong to the mp table. When the command runs
with a node range it reads them from the mp table, but when it runs with no
argument it reads them from the nodepos table, which has only node, rack, u,
chassis, slot, room and height. The two attributes were therefore always
empty for a whole cluster export.

Read them from the mp table in both branches.
2026-08-27 12:41:28 -03:00
Vinícius Ferrão 16c88d8966 feat(confluent): export the switch and port of each node
makeconfluentcfg gives confluent the console settings, the credentials of the
hardware manager, the location and the enclosure of each node. It does not
give the switch and the port that the node is cabled to, which confluent uses
to find a node by the port it answers on.

Read the switch table and give confluent net.switch and net.switchport.

A node has one row in that table for each of its interfaces, thus keep every
row and not the first one. A row that names an interface gives
net.<interface>.switch and net.<interface>.switchport, so a node with more
than one interface keeps the port of each. A row that names no interface
gives the names without an interface.

Read the table with the node list when the command receives a node range and
read the whole table when it does not, as the command already does for the
other tables.

A cluster whose switch table is empty receives the configuration that it
receives today.

Recovered from the lenovobuild branch, where this arrived as one commit and
two repairs of it: the first keeps one row for each node, which loses every
interface but one, and reads the switch columns from the nodepos table in the
branch that takes no node range, where that table has no such columns and the
feature does nothing.
2026-08-27 12:41:28 -03:00
Vinícius Ferrão cc71816b90 fix(confluent): configure nodes named explicitly without a console method
preprocess_request skips any node whose nodehm entry has neither cons nor
serialport. That is the right default while scanning the whole table, but it
also drops nodes the administrator named on the command line, leaving the
dispatched node list empty. makeconfluentcfg then falls back to reading every
node, so naming one console-less node quietly configures the whole cluster
instead of the node that was asked for.

A named node with no nodehm row at all is worse: both the selection here and
the second lookup in makeconfluentcfg produce an undefined entry, which reaches
confluent as an empty node name.

Apply the skip only to the full table scan, and carry the node name through
both lookups when the nodehm row is missing. Nodes without a console method are
already handled downstream, where makeconfluentcfg keeps explicitly named
entries and donodeent falls back to hardware management credentials.

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-08-07 22:32:43 -03:00
GONG Jie fa34aec04b Remove trailing spaces in file xCAT-server/lib/xcat/plugins/confluent.pm 2017-12-31 23:59:59 +00:00
banuchka fd5e40b8ca add console.logging=full if global consoleondemand set to no. Use value from consoleondemand per node basis. 2017-03-24 12:01:12 +00:00
Jarrod Johnson 8cdc0e50d3 Fix import of mp data to confluent
The plugin was incorrectly attempting to pull
in fields from the nodepos table rather
than mp.
2017-03-01 09:59:46 -05:00
Jarrod Johnson bdcf94d4c2 Fix various issues in confluent plugin
confluent plugin was triggering perl warnings in various
situations.  Correct those mistakes.
2017-01-20 14:59:28 -05:00
Jarrod Johnson 83e243e692 Fix makeconfluentcfg -d
makeconfluentcfg -d erroneously would exit after only considering
the first possible node.  Allow it to iterate over all the
confluent nodes seeking a match.
2016-08-31 10:01:31 -04:00
Mark Gurevich 0a3fbd8d51 perltidy all perl files 2016-07-20 11:40:27 -04:00
Jarrod Johnson 0815a44929 Copy location data into confluent on makeconfluentcfg 2016-04-11 16:07:23 -04:00
Jarrod Johnson 50ce848930 Handle ',,' in nodelist
If ',,' is in nodelist, then confluent is
told to deal with empty groups.  Filter
that phenomenon out.
2015-10-19 14:56:30 -04:00
Victor Hu 63f547a168 Print a more user friendly message when running makeconfluentcfg
if the confluent daemon is not running.  Bug #4705
2015-06-18 15:35:43 -04:00
jjohnson2 4d3e209c3e Push xCAT nodegroup membership to confluent
With noderanges, it would be very handy for xCAT
group membership to be reflected in confluent.  Have
makeconfluentcfg push that data into confluent.
2015-03-30 15:25:33 -04:00
Jarrod Johnson 48641cf945 Modify for 0.2 confluent
0.2 confluent rethought some facets.  Adapt to that reality
2014-07-31 09:09:17 -04:00
Jarrod Johnson 6f9c87f6b2 For non ipmi methods, have confluent use the xcat<meth>.sh module that corresponds 2014-05-28 15:27:31 -04:00
Jarrod Johnson a7484ee4ec Remove test value in previous commit 2014-05-20 15:15:25 -04:00
Jarrod Johnson 802366a48e Add a plugin to push xCAT config to confluent 2014-05-20 15:10:23 -04:00