2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-09-02 15:36:05 +00:00
Markus Hilger ce870f4c30 Ask whether a download target can be written, not read
A path a caller wants confluent to save something into was being run through
the check meant for a file confluent is asked to read.  That check forks, drops
to the calling user and asks os.access for R_OK, which is false for every file
that does not exist yet, so nodesupport servicedata and save_licenses could
only be given a path that was already there.  Handed a name to create, they
refused, and refused in a way no caller was looking for, so the command printed
nothing and exited zero.

The previous commit worked around it by skipping the check for a download
target, which fixed the symptom by removing the guard rather than by asking the
right question.  Ask the right question instead: whether the user could have
created the file in that directory themselves.  A path that is already a
directory is a destination directory, anything else names the file, which is
the same rule the code that goes on to write the file follows.

So a caller can still only make confluent write where they could have written,
and this now also catches an unwritable destination at the point the request is
made rather than several layers further in.
2026-08-14 21:26:29 +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 18 MiB
Languages
Python 85.9%
Shell 10.5%
C 2.3%
Go Template 0.7%
Go 0.3%
Other 0.2%