Skip to content

IGNITE-28532 Introduce JUnit Rolling Upgrade Testing Framework#13108

Open
maksaska wants to merge 5 commits into
apache:masterfrom
maksaska:ignite-28532
Open

IGNITE-28532 Introduce JUnit Rolling Upgrade Testing Framework#13108
maksaska wants to merge 5 commits into
apache:masterfrom
maksaska:ignite-28532

Conversation

@maksaska
Copy link
Copy Markdown
Contributor

@maksaska maksaska commented May 6, 2026

Thank you for submitting the pull request to the Apache Ignite.

In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:

The Contribution Checklist

  • There is a single JIRA ticket related to the pull request.
  • The web-link to the pull request is attached to the JIRA ticket.
  • The JIRA ticket has the Patch Available state.
  • The pull request body describes changes that have been made.
    The description explains WHAT and WHY was made instead of HOW.
  • The pull request title is treated as the final commit message.
    The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
  • A reviewer has been mentioned through the JIRA comments
    (see the Maintainers list)
  • The pull request has been checked by the Teamcity Bot and
    the green visa attached to the JIRA ticket (see tab PR Check at TC.Bot - Instance 1 or TC.Bot - Instance 2)

Notes

If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com #ignite channel.

import org.apache.ignite.SystemProperty;
import org.apache.ignite.internal.util.typedef.X;

/** */
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Let's describe what it does.


/** */
public class DistributionProvider {
/** Base Ignite distribution location */
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Use full stops pls.

private static final String DEFAULT_TARGET_REL_PATH = "target/release-package-apache-ignite";

/** */
private static final String LATEST_VERSION = "2.18.0";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there any automation? Do we need to fix this version at each release?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I don't think there is. We will have to track the latest RU compatible release like we do for the rest compatibility tests.

public static File resolveTargetDist() {
String explicit = IgniteSystemProperties.getString(TARGET_DIST);

if (explicit != null && !explicit.isEmpty())
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

F.isEmpty()?

}

throw new IllegalStateException(
"Target distribution not found. " +
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No chance for single line?

/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
for (int i : gridProxies.keySet())
stopNode(i);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will it coninue if curent node failed for some reason?

}

/**
* Centralized logic for node lifecycle.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks like it doesn't stop a node. So, it is not a lifecycle. Let's simplify, smth. like 'starts or restarts node with required version'

/**
* Resolves a specific directory for a node index and ensures it exists.
*/
private String resolveDir(String root, int idx) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

static ?

/**
* Deletes the entire root directory and all subdirectories/files.
*/
private void deleteRootDir(String root) throws IOException {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Static? Can we use U#delete()?

/**
* Builds a classpath string based on the provided Ignite home directory.
*
* @param igniteHome The root directory of the Ignite distribution.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ignite home path?

/**
* Task to update the cluster state.
*/
private static class StateTask extends ClusterTaskAdapter<Void> {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need a task for typical API feature? We can change the state with thin client as instance.

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