The plugin was written against the http.client based SecureHTTPConnection, and when that went away the reference was pointed at the aiohttp WebConnection, which shares the name and nothing else. Nothing in it could run: the transport called an async request() without awaiting it and then reached for a getresponse() the new class does not have, and three PDUClient methods that were never coroutines were awaited by the entry points. Two transports now, both local to this plugin. https is aiohttp and stays on the event loop, since the cert verifier records new fingerprints through tasks.spawn. http is http.client in a thread, with its own socket so it can still ask for a smaller segment size before connect: aiohttp only takes a socket factory from 3.12 on, newer than el9, el10, ubuntu 24.04 or Leap 16 ship. That side has no cert to verify and its credentials arrive already read, so the thread touches nothing. connect() establishes and authenticates, wc is just the accessor now, and logout() no longer sends a session id it never obtained. update() reports an unsupported element instead of raising NameError. On the https side cookies follow aiohttp's domain rules and the one POST with a body goes out as text/plain, where http.client replayed every cookie and sent no content type. The http side is as before, and neither can be settled without an Eaton PDU on the bench. Both transports were exercised against a stand-in: login, outlet read and set, sensors, logout, and a clamped segment size on the plaintext path.
Confluent
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:
- Land the release commit on master and tag
X.Y.0there. - Create branch
X.Yfrom that tag; it inheritsVERSION=X.Y.0. - Only then bump
VERSIONon 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.