Skip to content

Much more progress on Windows support in ducktape #155

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

Merged
merged 10 commits into from
Jan 25, 2017
Merged

Much more progress on Windows support in ducktape #155

merged 10 commits into from
Jan 25, 2017

Conversation

alexlod
Copy link
Contributor

@alexlod alexlod commented Jan 10, 2017

@ewencp: I've made a lot of progress on the windows changes to ducktape. These changes support my very simple windows-based service: https://github.com/alexlod/muckrake/blob/windows-finished/muckrake/services/dot_net_client_runner.py and a very simple test, too: https://github.com/alexlod/muckrake/blob/windows-finished/muckrake/tests/dot_net_client_test.py

I have a branch builder running right now that is testing these changes. Take a look at system-test-confluent-platform-branch-builder build number 136.

While you're reviewing this and giving feedback, I'll continue building out the service and test above. Once those are done and this PR merged, as far as I can tell, my whole .NET client system testing work is done until the .NET client is in a testable state (including the pluggable client work being done).

Thanks ahead of time, Ewen!

@alexlod alexlod self-assigned this Jan 10, 2017
@alexlod alexlod requested a review from ewencp January 10, 2017 18:31
@ConfluentJenkins
Copy link
Contributor

Test PASSed.

@ConfluentJenkins
Copy link
Contributor

Test PASSed.

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

1 similar comment
@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@alexlod
Copy link
Contributor Author

alexlod commented Jan 11, 2017

retest

@alexlod
Copy link
Contributor Author

alexlod commented Jan 11, 2017

retest this please

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@alexlod
Copy link
Contributor Author

alexlod commented Jan 11, 2017

Tests are failing because jenkins doesn't have the boto3 Python module. How can we get that installed?

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@alexlod
Copy link
Contributor Author

alexlod commented Jan 12, 2017

I just created a PR in muckrake that will be merged alongside this PR, eventually: https://github.com/confluentinc/muckrake/pull/200

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@@ -48,7 +48,7 @@ def __init__(self, cluster_json=None, *args, **kwargs):
{
"externally_routable_ip": "192.168.50.151",

"ssh_config": {
"remote_command_config": {
Copy link
Contributor

Choose a reason for hiding this comment

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

I like the renaming, but it's kind of annoying compatibility-wise. Some other folks use the JSON cluster directly (rather than via Vagrant). It might make sense to leave the format as is even if it's slightly inaccurate.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm fine with that, especially now that windows can run SSH commands (because it has an SSH server). I'll go ahead and move everything back to ssh_config.

@@ -70,6 +70,8 @@ def the_test(x):

"""

# TODO: should I change this to also support node_spec in addition to num_nodes?
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 we would have to for the test runner to work properly. Without that support, it can't schedule new tests in parallel since it'll need to take into account which tests need a windows box and how many are available.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Cool, I'll take a stab at this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I didn't have a chance to address this.

@@ -108,13 +106,13 @@ def setup_node_spec(num_nodes=None, node_spec=None):
else:
try:
for os_type in RemoteAccount.SUPPORTED_OS_TYPES:
if not node_spec[os_type]:
if os_type not in node_spec:
Copy link
Contributor

Choose a reason for hiding this comment

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

Thinking about this more, this might be annoying since you have to specify 0 or switch between num_nodes and node_spec if you don't want windows machines. Do we actually need to enforce that all OSes are in the node_spec.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We don't have to. We can assume 0. I like that -- it's more flexible. I'll make that change.

Return None if undefined.
"""

# TODO: closely code review this, please. I can't find anything in ducktape or muckrake that
Copy link
Contributor

Choose a reason for hiding this comment

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

The expected_num_nodes has limited use these days. We ended up going the annotation route eventually partly because variants of the same test can end up using a different # of nodes. We should probably even just get rid of it entirely, so adding to it with expected_node_spec may not make sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds good. I'll remove that part of this code.

@alexlod
Copy link
Contributor Author

alexlod commented Jan 13, 2017

@ewencp: I pushed a new commit that addresses all of your feedback except the one remaining open comment. ducktape tests are passing but I didn't get a chance to test in muckrake because I'm having a transient vagrant up issue. So keep in mind that my newest commit may have a bug in it that would be revealed by running muckrake.

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ewencp
Copy link
Contributor

ewencp commented Jan 13, 2017

retest this please

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ewencp
Copy link
Contributor

ewencp commented Jan 13, 2017

retest this please

Seems to be a conflict with an existing installed version of requests. Updated the Jenkins jobs to use a virtualenv.

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ewencp
Copy link
Contributor

ewencp commented Jan 13, 2017

retest this please

This time, with virtualenv installed.

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ewencp
Copy link
Contributor

ewencp commented Jan 13, 2017

retest this please

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ewencp
Copy link
Contributor

ewencp commented Jan 13, 2017

retest this please

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ewencp
Copy link
Contributor

ewencp commented Jan 13, 2017

retest this please

@ConfluentJenkins
Copy link
Contributor

Test FAILed.

@ewencp
Copy link
Contributor

ewencp commented Jan 13, 2017

retest this please

@ConfluentJenkins
Copy link
Contributor

Test PASSed.

@alexlod
Copy link
Contributor Author

alexlod commented Jan 25, 2017

@ewencp: I think this thing is ready to merge. I addressed the last open comment, tests are passing, and my muckrake changes in https://github.com/confluentinc/muckrake/pull/200 are passing, too.

@ConfluentJenkins
Copy link
Contributor

Test PASSed.

Copy link
Contributor

@ewencp ewencp left a comment

Choose a reason for hiding this comment

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

LGTM

@alexlod alexlod merged commit ef178cf into confluentinc:windows Jan 25, 2017
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.

3 participants