Skip to content
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

Bug 2015624: Refactor IBM Cloud skips to External #26537

Merged
merged 1 commit into from
Nov 17, 2021

Conversation

cjschaef
Copy link
Member

Refactor code related to skipping tests on IBM Cloud to skip based
on External ControlPlaneTopology, or Managed offering. IBM Cloud
will be offering an OCP, unmanaged, cluster that should not skip
such tests.

@openshift-ci openshift-ci bot added the bugzilla/severity-medium Referenced Bugzilla bug's severity is medium for the branch this PR is targeting. label Oct 21, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 21, 2021

@cjschaef: This pull request references Bugzilla bug 2015624, which is invalid:

  • expected the bug to target the "4.10.0" release, but it targets "---" instead

Comment /bugzilla refresh to re-evaluate validity if changes to the Bugzilla bug are made, or edit the title of this pull request to link to a different bug.

In response to this:

Bug 2015624: Refactor IBM Cloud skips to External

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci openshift-ci bot added the bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. label Oct 21, 2021
@cjschaef cjschaef force-pushed the bz_2015624 branch 5 times, most recently from a87cae2 to c6114a0 Compare October 21, 2021 21:50
@@ -250,16 +252,19 @@ func (test resourceAccessReviewTest) run() {
}
}

infra, err := test.ocClient.AdminConfigClient().ConfigV1().Infrastructures().Get(context.Background(), "cluster", metav1.GetOptions{})
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it be possible to have some kind of global somewhere so we can store the controlplanetopology instead of fetching it in every test that needs to switch behavior based on its value?

Copy link
Member Author

Choose a reason for hiding this comment

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

I can certainly look into that

Copy link
Member Author

Choose a reason for hiding this comment

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

I hopefully have something sufficient to do that now


// GetControlPlaneTopology retrieves the cluster infrastructure TopologyMode
func GetControlPlaneTopology(ocClient *CLI) (*configv1.TopologyMode, error) {
if ControlPlaneTopology == nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this needs to be threadsafe/protected by a sync.Mutex as tests could end up calling this in parallel

Copy link
Member Author

Choose a reason for hiding this comment

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

Added a mutex lock to the function

Copy link
Contributor

Choose a reason for hiding this comment

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

the mutex already needs to be used for reading ( if ControlPlaneTopology == nil) as reading/writing to a variable in parallel is a datarace.

Copy link
Member Author

Choose a reason for hiding this comment

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

Will the additional locking be acceptable, if we always perform it when this function is called, compared with the additional check after receiving the lock, prior to attempting to set the value?

I considered using the builtin once, but was not confident that that would work properly if an error was raised while attempting to get the Infrastructure.Status.ControlPlaneTopology.

Copy link
Contributor

Choose a reason for hiding this comment

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

If we just lock in the very beginning of the function prior to reading we are good. An additional check prior to setting the value would only be needed if we used a RWLock, but I don't think we need that.

Copy link
Member Author

Choose a reason for hiding this comment

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

okay, I'll make that change, thanks!

Copy link
Member Author

Choose a reason for hiding this comment

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

updated

@cjschaef cjschaef force-pushed the bz_2015624 branch 2 times, most recently from e7167da to 5671723 Compare November 15, 2021 14:33
@ironcladlou
Copy link
Contributor

/approve

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 15, 2021
Refactor code related to skipping tests on IBM Cloud to skip based
on External ControlPlaneTopology, or Managed offering. IBM Cloud
will be offering an OCP, unmanaged, cluster that should not skip
such tests.
Copy link
Contributor

@alvaroaleman alvaroaleman left a comment

Choose a reason for hiding this comment

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

thanks for your work!

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 17, 2021

@cjschaef: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gcp-csi 41d9d55 link false /test e2e-gcp-csi
ci/prow/e2e-aws-cgroupsv2 41d9d55 link false /test e2e-aws-cgroupsv2
ci/prow/e2e-aws-csi 41d9d55 link false /test e2e-aws-csi
ci/prow/e2e-aws-single-node 41d9d55 link false /test e2e-aws-single-node
ci/prow/e2e-agnostic-cmd 41d9d55 link false /test e2e-agnostic-cmd

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@alvaroaleman
Copy link
Contributor

/lgtm
/retest-required

@alvaroaleman
Copy link
Contributor

/bugzilla refresh

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 17, 2021

@alvaroaleman: This pull request references Bugzilla bug 2015624, which is invalid:

  • expected the bug to target the "4.10.0" release, but it targets "---" instead

Comment /bugzilla refresh to re-evaluate validity if changes to the Bugzilla bug are made, or edit the title of this pull request to link to a different bug.

In response to this:

/bugzilla refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 17, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 17, 2021

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alvaroaleman, cjschaef, ironcladlou

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@alvaroaleman
Copy link
Contributor

/bugzilla refresh

@openshift-ci openshift-ci bot added the bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. label Nov 17, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 17, 2021

@alvaroaleman: This pull request references Bugzilla bug 2015624, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target release (4.10.0) matches configured target release for branch (4.10.0)
  • bug is in the state NEW, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)

In response to this:

/bugzilla refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci openshift-ci bot removed the bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. label Nov 17, 2021
@openshift-bot
Copy link
Contributor

/retest-required

Please review the full test history for this PR and help us cut down flakes.

@openshift-merge-robot openshift-merge-robot merged commit f2d6080 into openshift:master Nov 17, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 17, 2021

@cjschaef: All pull requests linked via external trackers have merged:

Bugzilla bug 2015624 has been moved to the MODIFIED state.

In response to this:

Bug 2015624: Refactor IBM Cloud skips to External

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@cjschaef cjschaef deleted the bz_2015624 branch November 17, 2021 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. bugzilla/severity-medium Referenced Bugzilla bug's severity is medium for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants