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

update fetch_externally_routable_ips to use any network device #314

Merged
merged 8 commits into from Jun 16, 2022

Conversation

imcdo
Copy link
Member

@imcdo imcdo commented May 25, 2022

instead of expecting a explicit network device, use a generic one based on the devices found on the remote machine.

@imcdo imcdo requested a review from a team May 25, 2022 19:02
@CLAassistant
Copy link

CLAassistant commented May 25, 2022

CLA assistant check
All committers have signed the CLA.

Copy link
Member

@stan-is-hate stan-is-hate left a comment

Choose a reason for hiding this comment

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

Thanks Ian! Looks ok, but the tests fail and I'm not sure about this formatting (try autopep8)

ducktape/cluster/linux_remoteaccount.py Outdated Show resolved Hide resolved
ducktape/cluster/linux_remoteaccount.py Show resolved Hide resolved
ducktape/cluster/linux_remoteaccount.py Show resolved Hide resolved
ducktape/cluster/linux_remoteaccount.py Outdated Show resolved Hide resolved
@stan-is-hate
Copy link
Member

A more meta question is this - what specific issue is this resolving and do we want it in all branches or maybe make it 0.9.x only?

@imcdo
Copy link
Member Author

imcdo commented May 25, 2022

A more meta question is this - what specific issue is this resolving and do we want it in all branches or maybe make it 0.9.x only?

seems that some people use this in their test, and when changing ec2 instance types/base amis the network device name changes and is rarely actually these two devices. Realistically people should only use the externally routable ip that is set in their cluster (hence the deprecation) but this fix is for people with current tests that use it and who are trying to upgrade their hardware.

@imcdo imcdo requested a review from lbradstreet June 1, 2022 21:19
@lbradstreet
Copy link
Member

This LGTM, but I fired off a run that previously failed to be sure. I'll approve once it's done.

Copy link
Member

@lbradstreet lbradstreet left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for the fix!

@lbradstreet
Copy link
Member

There's some conflicts with requirements btw.

Copy link
Member

@stan-is-hate stan-is-hate left a comment

Choose a reason for hiding this comment

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

Seeing how we ran into issues with other changes in the past, I'm not convinced we want such changes in 0.7 or 0.8 tbh.
Like we're deprecating something so that warrants a version change. 0.9 is probably ok, but might be 0.10?
We can discuss this offline too.

if not is_aws:
raise NotImplementedError("Windows is only supported in AWS.")

def fetch_externally_routable_ip(self, is_aws=None):
Copy link
Member

Choose a reason for hiding this comment

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

So do we support windows in aws now?

Copy link
Member Author

Choose a reason for hiding this comment

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

in the past we only supported windows in aws for vagrant clusters, whats not made clear is this code path is only executed from the vagrant cluster file, so its not a great representation of whats actually supported. This pr makes things a bit more generic.

@imcdo
Copy link
Member Author

imcdo commented Jun 7, 2022

the expectation before had tied the hardware to vagrant clusters, and this pr unties them, so I believe its worth wile to merge this in old branches as imo ducktape shouldn't make any assumptions about hardware in any version

@stan-is-hate
Copy link
Member

I totally support the motivation behind this change, ducktape shouldn't make assumptions about hardware indeed. However, I don't want us making potentially breaking changes in the patch versions, especially since ducktape is used in other projects outside of confluent as well. I may be wrong here, of course, so let's continue this conversation offline.

@lbradstreet
Copy link
Member

@imcdo I tested this change with my branch where the IP discovery and interface discovery were previously failing and it works well and fixes the issues. For some of the tests where I need to detect the default interface, I ended up doing node.account.get_external_accessible_network_devices()[0] which is slightly awkward but works fine.

@imcdo imcdo merged commit fd6707b into confluentinc:0.7.x Jun 16, 2022
gousteris pushed a commit to gousteris/ducktape that referenced this pull request Aug 30, 2023
…uentinc#314)

* update fetch_externally_routable_ips

* pr comments

* update-vagrant

* spelling fix

* fix tests

* make network device methods available and also fix test

* pin xmltodict

* remove deprecation
gousteris pushed a commit to gousteris/ducktape that referenced this pull request Aug 30, 2023
…uentinc#314)

* update fetch_externally_routable_ips

* pr comments

* update-vagrant

* spelling fix

* fix tests

* make network device methods available and also fix test

* pin xmltodict

* remove deprecation
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.

None yet

4 participants