Skip to content

For upgrade tests correctly use cassandra_version over version, and set protocol_version to highest source version supports #275

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: trunk
Choose a base branch
from

Conversation

michaelsembwever
Copy link
Member

@michaelsembwever michaelsembwever commented Apr 9, 2025

This PR…
1. Fix places where we need to be using cassandra_version() (instead of just version()), now that we support other cluster types.
2. for upgrade tests default the protocol_version to the max of the source/starting version in the upgrade path -- the assumption here is that from.max_proto_v will always be within the to.min_proto_v to to.max_proto_v range.
3. for upgrade tests default the endpoint_snitch yaml property to SimpleSnitch. this relates to HCD-129
4. after upgrading a node, check and prune any unsupported config options
5. when creating a cluster (dtest_setup.create_ccm_cluster(..)) use the correct cluster type subclass
6. when upgrading, check (and change if necessary) the cluster class type and the node class type (and copy config files into new config locations)

…et protocol_version to highest source version supports

Assumption is made that the source version on an upgrade path cannot support a higher protocol_version than the destination version.
…f cluster's default config, can be overridden by test
@@ -439,7 +440,7 @@ def init_default_config(self):
phi_values = {'phi_convict_threshold': 5}

# enable read time tracking of repaired data between replicas by default
if self.cluster.version() >= '4':
if self.cluster.cassandra_version() >= '4':
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't you also need to make that change in L98?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

L98 is

        if self.cluster.version() < LooseVersion('3.11.13'):

in def install_nodetool_legacy_parsing

i don't think so… what were your thoughts here ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am obviously missing what is the difference of comparing against a version number and a LooseVersion. Aren't you trying to change behavior depending on the 'embedded' underlying C* versions instead of the 'product' version?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants