Merge ~powersj/cloud-init:cii-requirements into cloud-init:master

Proposed by Joshua Powers
Status: Merged
Approved by: Chad Smith
Approved revision: 2f5db0ac698cda29bdbb32374b36771114364f4e
Merge reported by: Chad Smith
Merged at revision: 765d2a7ef535dd3a0e62f60700a3c9e3da65de2b
Proposed branch: ~powersj/cloud-init:cii-requirements
Merge into: cloud-init:master
Diff against target: 37 lines (+19/-4)
2 files modified
integration-requirements.txt (+18/-0)
tox.ini (+1/-4)
Reviewer Review Type Date Requested Status
Chad Smith Approve
Server Team CI bot continuous-integration Approve
Review via email: mp+335774@code.launchpad.net

Commit message

tests: add integration requirements text file

This adds the specific requirements for integration testing to
a single file that can be referenced in other areas. It also enables
the read-dependencies script to install those packages.

To post a comment you must log in.
Revision history for this message
Joshua Powers (powersj) :
Revision history for this message
Server Team CI bot (server-team-bot) wrote :

PASSED: Continuous integration, rev:eed66ea6248d510de87af6ea545bdce2c6e63836
https://jenkins.ubuntu.com/server/job/cloud-init-ci/667/
Executed test runs:
    SUCCESS: Checkout
    SUCCESS: Unit & Style Tests
    SUCCESS: Ubuntu LTS: Build
    SUCCESS: Ubuntu LTS: Integration
    SUCCESS: MAAS Compatability Testing
    IN_PROGRESS: Declarative: Post Actions

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/667/rebuild

review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :

PASSED: Continuous integration, rev:b06626f2c5632ad6ce8ed2aced5e04985c535156
https://jenkins.ubuntu.com/server/job/cloud-init-ci/673/
Executed test runs:
    SUCCESS: Checkout
    SUCCESS: Unit & Style Tests
    SUCCESS: Ubuntu LTS: Build
    SUCCESS: Ubuntu LTS: Integration
    SUCCESS: MAAS Compatability Testing
    IN_PROGRESS: Declarative: Post Actions

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/673/rebuild

review: Approve (continuous-integration)
Revision history for this message
Joshua Powers (powersj) wrote :

I believe I have made the changes we talked about on Friday and this is ready for another review.

Revision history for this message
Scott Moser (smoser) wrote :

Things I don't *love*:
 1. there is no way to install test dependencies on ubuntu without installing integration-test dependencies.
 2. installing integration-test dependencies on ubuntu will not get you
    a.) lxd
    b.) qemu-system or cloud-image-utils (for mount-image-callback)

I'm temted to say we should fix '1' by adding a '--integration-test-distro' (-I) flag rather than chaning the behavior of '--test-distro'.

Then that can *fail* on non-ubuntu.

For '2', the '--integration-test-distro' would help in solving it also. Just gives us more information to work from.

Revision history for this message
Joshua Powers (powersj) wrote :

I have removed the work done to read-dependencies and updated the commit message: First, all non-ubuntu OSes do not have access to simplestreams as it is not available via system packages or via PyPI. This already limits the usefulness of this to Ubuntu. Second, the version of pylxd, must be the latest from pypi, it cannot be the system package. This is largely why we like using tox to run the tests.

As a result of the two points above, I do not see a strong reason to even have any of the integration requirements inside the read-dependencies script at this time. This commit simple creates a requirements file for managing and documenting specific requirements for integration testing, rather than doing that work inside of the tox.ini file.

Revision history for this message
Server Team CI bot (server-team-bot) wrote :

PASSED: Continuous integration, rev:2f5db0ac698cda29bdbb32374b36771114364f4e
https://jenkins.ubuntu.com/server/job/cloud-init-ci/680/
Executed test runs:
    SUCCESS: Checkout
    SUCCESS: Unit & Style Tests
    SUCCESS: Ubuntu LTS: Build
    SUCCESS: Ubuntu LTS: Integration
    SUCCESS: MAAS Compatability Testing
    IN_PROGRESS: Declarative: Post Actions

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/680/rebuild

review: Approve (continuous-integration)
Revision history for this message
Scott Moser (smoser) wrote :

Ultimately I do want some way to "prepare my system to run c-i".
As I'm going to deploy a stock instance and then want to do just that.

That goal is very similar to what 'read-dependencies --install --test-distro' does, so it seems to make sense to add the functionality there.

I'm not bent on having that done right now though.

Chad, do you have thoughts on that?

Revision history for this message
Chad Smith (chad.smith) wrote :

Yeah I'm in the same camp. I think cloud-init should grow the possibility of a one-command developer/ci setup. If we can bake that into make ci-ubuntu-deps via extensions to read-dependencies at some point that'd make me happy, but as Josh suggested in IRC, this might be cloud-init trying to handle too dependency sources.

1. We can't install exclusively from pypi because of bzr-lp dependencies sources defined in tox,
2. We can't install exclusively via system packages because some pips aren't packaged as debs/rpms

So, we might need a hybrid approach for greenfield systems and that'll involve some bikeshedding ;)

review: Approve

There was an error fetching revisions from git servers. Please try again in a few minutes. If the problem persists, contact Launchpad support.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/integration-requirements.txt b/integration-requirements.txt
2new file mode 100644
3index 0000000..5c81c2c
4--- /dev/null
5+++ b/integration-requirements.txt
6@@ -0,0 +1,18 @@
7+# PyPI requirements for cloud-init integration testing
8+# https://cloudinit.readthedocs.io/en/latest/topics/tests.html
9+#
10+# Note: Changes to this requirements may require updates to
11+# the packages/pkg-deps.json file as well.
12+#
13+
14+# ec2 backend
15+boto3==1.5.9
16+
17+# ssh communication
18+paramiko==2.4.0
19+
20+# lxd backend
21+pylxd==2.2.4
22+
23+# finds latest image information
24+bzr+lp:simplestreams
25diff --git a/tox.ini b/tox.ini
26index 88b82dc..bb74853 100644
27--- a/tox.ini
28+++ b/tox.ini
29@@ -132,7 +132,4 @@ basepython = python3
30 commands = {envpython} -m tests.cloud_tests {posargs}
31 passenv = HOME
32 deps =
33- pylxd==2.2.4
34- paramiko==2.3.1
35- boto3==1.4.8
36- bzr+lp:simplestreams
37+ -r{toxinidir}/integration-requirements.txt

Subscribers

People subscribed via source and target branches