2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-08-29 01:56:46 +00:00
Markus Hilger 564230cf7e Give an unreachable target an error a user can read
A console whose bmc had gone away reported "Unexpected error - None", and
the api answered 504 with an error of None.  The redfish plugin took the
text for an unreachable target from the strerror of the socket error it
caught, guarded by a hasattr that is always true: every OSError has a
strerror attribute, and it is None on most of the ones a bmc going away
produces, TimeoutError and gaierror among them.  Ask for the text the same
way as everywhere else instead, which also keeps the errno on the errors
that do carry one.

The same applies to an unreachable target raised with no message at all,
so use the same helper there, on both transports.

Underneath that, give the node error messages a default to fall back on
rather than carrying whatever they were handed.  Each subclass already had
one, in an __init__ that an explicit None went straight past; making it a
class attribute the base class applies means it holds however the message
was built, and removes five copies of the same constructor.

Also repair an affluent handler that put a closing parenthesis in the
wrong place, passing its error text to Queue.put_nowait as a second
argument.  Any OSError there other than "no route to host" raised
TypeError from inside the except clause instead of reporting anything.
2026-08-14 21:26:28 +02:00
2026-08-11 05:50:55 +02:00
2026-06-10 07:44:50 -04:00
2021-01-21 11:52:22 -05:00

Confluent

Python 3 License

Confluent is a software package to handle essential bootstrap and operation of scale-out server configurations. It supports stateful and stateless deployments for various operating systems.

Check this page for a more detailed list of features.

Confluent is the modern successor of xCAT. If you're coming from xCAT, check out this comparison.

Documentation

Confluent documentation is hosted on: https://xcat2.github.io/confluent-docs/

Download

Get the latest version from: https://xcat2.github.io/confluent-docs/downloads/

Check release notes on: https://xcat2.github.io/confluent-docs/release_notes/

Open Source License

Confluent is made available under the Apache 2.0 license: https://opensource.org/license/apache-2-0

Developers

Want to help? Submit a Pull Request.

Versioning and releases

The top-level VERSION file names the release the current branch is working toward. Build scripts call ./mkversion, which turns it into the version stamped on packages: the tag itself on a release tag (4.0.1), otherwise a development version (4.0.1.dev5+gdeadbee, or 4.0.1~dev5+gdeadbee for the packages that have no setup.py).

mkversion also derives a version from the newest tag reachable from HEAD and uses whichever is higher, so forgetting to bump VERSION after tagging the current branch cannot walk the version backwards. Staying ahead of tags on other branches is what VERSION itself is for: patch releases are tagged on release branches, which master never sees.

Cutting a new series:

  1. Land the release commit on master and tag X.Y.0 there.
  2. Create branch X.Y from that tag; it inherits VERSION=X.Y.0.
  3. Only then bump VERSION on master. Doing it before step 2 leaves the release branch on the wrong series.

Patch releases land on branch X.Y and are tagged X.Y.Z there; no VERSION edit is needed.

S
Description
xCAT confluent - replacement of conserver and eventually xcatd
Readme 17 MiB
Languages
Python 85.9%
Shell 10.5%
C 2.3%
Go Template 0.7%
Go 0.3%
Other 0.2%