Merge ~jgrimm/cloud-init:fix_chef_example_source into cloud-init:master

Proposed by Jon Grimm
Status: Merged
Merged at revision: 291d2976bd7b95e492a004ed7ce80e47ad85905d
Proposed branch: ~jgrimm/cloud-init:fix_chef_example_source
Merge into: cloud-init:master
Diff against target: 223 lines (+99/-69)
4 files modified
doc/examples/cloud-config-chef.txt (+38/-34)
doc/rtd/topics/examples.rst (+1/-1)
tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml (+43/-34)
tests/cloud_tests/testcases/examples/install_run_chef_recipes.py (+17/-0)
Reviewer Review Type Date Requested Status
Server Team CI bot continuous-integration Approve
cloud-init Commiters Pending
Review via email: mp+321610@code.launchpad.net

Description of the change

Author: Jon Grimm <email address hidden>
Date: Fri Mar 31 13:16:25 2017 -0500

    Fix examples that reference upstream chef repository.

    Also add integration test. Note: this new test is not comprehensive; it
    simply ensures that the example chef configuration does not blow up and
    that chef seems to be installed after its completion.

    This new test is disabled by default as it depends on a 3rd party repository.

    LP: #1678145

To post a comment you must log in.
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Ryan Harper (raharper) wrote :

Looks good! Some feedback in the integration test.

Revision history for this message
Jon Grimm (jgrimm) wrote :

Cool feedback, and should be considered across the rest of the current
testcases (as I've lazily cut & pasted from current). I'll address here
of course. :) Thanks!

On Fri, Mar 31, 2017 at 1:46 PM, Ryan Harper <email address hidden>
wrote:

> Looks good! Some feedback in the integration test.
>
> Diff comments:
>
> > diff --git a/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml
> b/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml
> > index 3cd28df..9b75d49 100644
> > --- a/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml
> > +++ b/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml
> > @@ -91,4 +95,9 @@ cloud_config: |
> > # Useful for troubleshooting cloud-init issues
> > output: {all: '| tee -a /var/log/cloud-init-output.log'}
> >
> > +collect_scripts:
> > + chef_installed: |
> > + #!/bin/bash
>
> The smoser in me says this should be /bin/sh.
>
> This looks like (below) attempting to confirm if the package is installed;
> I suggest using dpkg-query instead so we can verify the state of the
> package (dpkg -l may be rc, not ii);
>
> # not installed
> % dpkg-query -W -f '${Status}\n' chef
> dpkg-query: no packages found matching chef
>
> # installed
> % dpkg-query -W -f '${Status}\n' chef
> install ok installed
>
> > + dpkg -l | grep chef | wc -l
> > +
> > # vi: ts=4 expandtab
>
>
> --
> https://code.launchpad.net/~jgrimm/cloud-init/+git/cloud-
> init/+merge/321610
> You are the owner of ~jgrimm/cloud-init:fix_chef_example_source.
>

--
Jon Grimm
Engineering Manager, Ubuntu Server
Canonical Ltd

08b55ba... by Jon Grimm

Merge branch 'fix_chef_example_source' of ssh://git.launchpad.net/~jgrimm/cloud-init into fix_chef_example_source

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

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/doc/examples/cloud-config-chef.txt b/doc/examples/cloud-config-chef.txt
2index 75d78a1..3cb6200 100644
3--- a/doc/examples/cloud-config-chef.txt
4+++ b/doc/examples/cloud-config-chef.txt
5@@ -5,46 +5,50 @@
6 # Make sure that this file is valid yaml before starting instances.
7 # It should be passed as user-data when starting the instance.
8 #
9-# This example assumes the instance is 12.04 (precise)
10+# This example assumes the instance is 16.04 (xenial)
11
12
13 # The default is to install from packages.
14
15-# Key from http://apt.opscode.com/packages@opscode.com.gpg.key
16+# Key from https://packages.chef.io/chef.asc
17 apt:
18- sources:
19- - source: "deb http://apt.opscode.com/ $RELEASE-0.10 main"
20- key: |
21- -----BEGIN PGP PUBLIC KEY BLOCK-----
22- Version: GnuPG v1.4.9 (GNU/Linux)
23+ source1:
24+ source: "deb http://packages.chef.io/repos/apt/stable $RELEASE main"
25+ key: |
26+ -----BEGIN PGP PUBLIC KEY BLOCK-----
27+ Version: GnuPG v1.4.12 (Darwin)
28+ Comment: GPGTools - http://gpgtools.org
29
30- mQGiBEppC7QRBADfsOkZU6KZK+YmKw4wev5mjKJEkVGlus+NxW8wItX5sGa6kdUu
31- twAyj7Yr92rF+ICFEP3gGU6+lGo0Nve7KxkN/1W7/m3G4zuk+ccIKmjp8KS3qn99
32- dxy64vcji9jIllVa+XXOGIp0G8GEaj7mbkixL/bMeGfdMlv8Gf2XPpp9vwCgn/GC
33- JKacfnw7MpLKUHOYSlb//JsEAJqao3ViNfav83jJKEkD8cf59Y8xKia5OpZqTK5W
34- ShVnNWS3U5IVQk10ZDH97Qn/YrK387H4CyhLE9mxPXs/ul18ioiaars/q2MEKU2I
35- XKfV21eMLO9LYd6Ny/Kqj8o5WQK2J6+NAhSwvthZcIEphcFignIuobP+B5wNFQpe
36- DbKfA/0WvN2OwFeWRcmmd3Hz7nHTpcnSF+4QX6yHRF/5BgxkG6IqBIACQbzPn6Hm
37- sMtm/SVf11izmDqSsQptCrOZILfLX/mE+YOl+CwWSHhl+YsFts1WOuh1EhQD26aO
38- Z84HuHV5HFRWjDLw9LriltBVQcXbpfSrRP5bdr7Wh8vhqJTPjrQnT3BzY29kZSBQ
39- YWNrYWdlcyA8cGFja2FnZXNAb3BzY29kZS5jb20+iGAEExECACAFAkppC7QCGwMG
40- CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRApQKupg++Caj8sAKCOXmdG36gWji/K
41- +o+XtBfvdMnFYQCfTCEWxRy2BnzLoBBFCjDSK6sJqCu5Ag0ESmkLtBAIAIO2SwlR
42- lU5i6gTOp42RHWW7/pmW78CwUqJnYqnXROrt3h9F9xrsGkH0Fh1FRtsnncgzIhvh
43- DLQnRHnkXm0ws0jV0PF74ttoUT6BLAUsFi2SPP1zYNJ9H9fhhK/pjijtAcQwdgxu
44- wwNJ5xCEscBZCjhSRXm0d30bK1o49Cow8ZIbHtnXVP41c9QWOzX/LaGZsKQZnaMx
45- EzDk8dyyctR2f03vRSVyTFGgdpUcpbr9eTFVgikCa6ODEBv+0BnCH6yGTXwBid9g
46- w0o1e/2DviKUWCC+AlAUOubLmOIGFBuI4UR+rux9affbHcLIOTiKQXv79lW3P7W8
47- AAfniSQKfPWXrrcAAwUH/2XBqD4Uxhbs25HDUUiM/m6Gnlj6EsStg8n0nMggLhuN
48- QmPfoNByMPUqvA7sULyfr6xCYzbzRNxABHSpf85FzGQ29RF4xsA4vOOU8RDIYQ9X
49- Q8NqqR6pydprRFqWe47hsAN7BoYuhWqTtOLSBmnAnzTR5pURoqcquWYiiEavZixJ
50- 3ZRAq/HMGioJEtMFrvsZjGXuzef7f0ytfR1zYeLVWnL9Bd32CueBlI7dhYwkFe+V
51- Ep5jWOCj02C1wHcwt+uIRDJV6TdtbIiBYAdOMPk15+VBdweBXwMuYXr76+A7VeDL
52- zIhi7tKFo6WiwjKZq0dzctsJJjtIfr4K4vbiD9Ojg1iISQQYEQIACQUCSmkLtAIb
53- DAAKCRApQKupg++CauISAJ9CxYPOKhOxalBnVTLeNUkAHGg2gACeIsbobtaD4ZHG
54- 0GLl8EkfA8uhluM=
55- =zKAm
56- -----END PGP PUBLIC KEY BLOCK-----
57+ mQGiBEppC7QRBADfsOkZU6KZK+YmKw4wev5mjKJEkVGlus+NxW8wItX5sGa6kdUu
58+ twAyj7Yr92rF+ICFEP3gGU6+lGo0Nve7KxkN/1W7/m3G4zuk+ccIKmjp8KS3qn99
59+ dxy64vcji9jIllVa+XXOGIp0G8GEaj7mbkixL/bMeGfdMlv8Gf2XPpp9vwCgn/GC
60+ JKacfnw7MpLKUHOYSlb//JsEAJqao3ViNfav83jJKEkD8cf59Y8xKia5OpZqTK5W
61+ ShVnNWS3U5IVQk10ZDH97Qn/YrK387H4CyhLE9mxPXs/ul18ioiaars/q2MEKU2I
62+ XKfV21eMLO9LYd6Ny/Kqj8o5WQK2J6+NAhSwvthZcIEphcFignIuobP+B5wNFQpe
63+ DbKfA/0WvN2OwFeWRcmmd3Hz7nHTpcnSF+4QX6yHRF/5BgxkG6IqBIACQbzPn6Hm
64+ sMtm/SVf11izmDqSsQptCrOZILfLX/mE+YOl+CwWSHhl+YsFts1WOuh1EhQD26aO
65+ Z84HuHV5HFRWjDLw9LriltBVQcXbpfSrRP5bdr7Wh8vhqJTPjrQnT3BzY29kZSBQ
66+ YWNrYWdlcyA8cGFja2FnZXNAb3BzY29kZS5jb20+iGAEExECACAFAkppC7QCGwMG
67+ CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRApQKupg++Caj8sAKCOXmdG36gWji/K
68+ +o+XtBfvdMnFYQCfTCEWxRy2BnzLoBBFCjDSK6sJqCu0IENIRUYgUGFja2FnZXMg
69+ PHBhY2thZ2VzQGNoZWYuaW8+iGIEExECACIFAlQwYFECGwMGCwkIBwMCBhUIAgkK
70+ CwQWAgMBAh4BAheAAAoJEClAq6mD74JqX94An26z99XOHWpLN8ahzm7cp13t4Xid
71+ AJ9wVcgoUBzvgg91lKfv/34cmemZn7kCDQRKaQu0EAgAg7ZLCVGVTmLqBM6njZEd
72+ Zbv+mZbvwLBSomdiqddE6u3eH0X3GuwaQfQWHUVG2yedyDMiG+EMtCdEeeRebTCz
73+ SNXQ8Xvi22hRPoEsBSwWLZI8/XNg0n0f1+GEr+mOKO0BxDB2DG7DA0nnEISxwFkK
74+ OFJFebR3fRsrWjj0KjDxkhse2ddU/jVz1BY7Nf8toZmwpBmdozETMOTx3LJy1HZ/
75+ Te9FJXJMUaB2lRyluv15MVWCKQJro4MQG/7QGcIfrIZNfAGJ32DDSjV7/YO+IpRY
76+ IL4CUBQ65suY4gYUG4jhRH6u7H1p99sdwsg5OIpBe/v2Vbc/tbwAB+eJJAp89Zeu
77+ twADBQf/ZcGoPhTGFuzbkcNRSIz+boaeWPoSxK2DyfScyCAuG41CY9+g0HIw9Sq8
78+ DuxQvJ+vrEJjNvNE3EAEdKl/zkXMZDb1EXjGwDi845TxEMhhD1dDw2qpHqnJ2mtE
79+ WpZ7juGwA3sGhi6FapO04tIGacCfNNHmlRGipyq5ZiKIRq9mLEndlECr8cwaKgkS
80+ 0wWu+xmMZe7N5/t/TK19HXNh4tVacv0F3fYK54GUjt2FjCQV75USnmNY4KPTYLXA
81+ dzC364hEMlXpN21siIFgB04w+TXn5UF3B4FfAy5hevvr4DtV4MvMiGLu0oWjpaLC
82+ MpmrR3Ny2wkmO0h+vgri9uIP06ODWIhJBBgRAgAJBQJKaQu0AhsMAAoJEClAq6mD
83+ 74Jq4hIAoJ5KrYS8kCwj26SAGzglwggpvt3CAJ0bekyky56vNqoegB+y4PQVDv4K
84+ zA==
85+ =IxPr
86+ -----END PGP PUBLIC KEY BLOCK-----
87
88 chef:
89
90diff --git a/doc/rtd/topics/examples.rst b/doc/rtd/topics/examples.rst
91index a110721..1048791 100644
92--- a/doc/rtd/topics/examples.rst
93+++ b/doc/rtd/topics/examples.rst
94@@ -149,6 +149,6 @@ Register RedHat Subscription
95 :language: yaml
96 :linenos:
97
98-.. _chef: http://www.opscode.com/chef/
99+.. _chef: http://www.chef.io/chef/
100 .. _puppet: http://puppetlabs.com/
101 .. vi: textwidth=78
102diff --git a/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml b/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml
103index 3cd28df..0bec305 100644
104--- a/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml
105+++ b/tests/cloud_tests/configs/examples/install_run_chef_recipes.yaml
106@@ -1,46 +1,50 @@
107 #
108 # From cloud config examples on cloudinit.readthedocs.io
109 #
110-# 2016-11-17: Disabled as test suite fails this long running test currently
111+# 2017-03-31: Disabled as depends on third party apt repository
112 #
113 enabled: False
114 cloud_config: |
115 #cloud-config
116- # Key from http://apt.opscode.com/packages@opscode.com.gpg.key
117+ # Key from https://packages.chef.io/chef.asc
118 apt:
119- sources:
120- - source: "deb http://apt.opscode.com/ $RELEASE-0.10 main"
121- key: |
122- -----BEGIN PGP PUBLIC KEY BLOCK-----
123- Version: GnuPG v1.4.9 (GNU/Linux)
124+ source1:
125+ source: "deb http://packages.chef.io/repos/apt/stable $RELEASE main"
126+ key: |
127+ -----BEGIN PGP PUBLIC KEY BLOCK-----
128+ Version: GnuPG v1.4.12 (Darwin)
129+ Comment: GPGTools - http://gpgtools.org
130
131- mQGiBEppC7QRBADfsOkZU6KZK+YmKw4wev5mjKJEkVGlus+NxW8wItX5sGa6kdUu
132- twAyj7Yr92rF+ICFEP3gGU6+lGo0Nve7KxkN/1W7/m3G4zuk+ccIKmjp8KS3qn99
133- dxy64vcji9jIllVa+XXOGIp0G8GEaj7mbkixL/bMeGfdMlv8Gf2XPpp9vwCgn/GC
134- JKacfnw7MpLKUHOYSlb//JsEAJqao3ViNfav83jJKEkD8cf59Y8xKia5OpZqTK5W
135- ShVnNWS3U5IVQk10ZDH97Qn/YrK387H4CyhLE9mxPXs/ul18ioiaars/q2MEKU2I
136- XKfV21eMLO9LYd6Ny/Kqj8o5WQK2J6+NAhSwvthZcIEphcFignIuobP+B5wNFQpe
137- DbKfA/0WvN2OwFeWRcmmd3Hz7nHTpcnSF+4QX6yHRF/5BgxkG6IqBIACQbzPn6Hm
138- sMtm/SVf11izmDqSsQptCrOZILfLX/mE+YOl+CwWSHhl+YsFts1WOuh1EhQD26aO
139- Z84HuHV5HFRWjDLw9LriltBVQcXbpfSrRP5bdr7Wh8vhqJTPjrQnT3BzY29kZSBQ
140- YWNrYWdlcyA8cGFja2FnZXNAb3BzY29kZS5jb20+iGAEExECACAFAkppC7QCGwMG
141- CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRApQKupg++Caj8sAKCOXmdG36gWji/K
142- +o+XtBfvdMnFYQCfTCEWxRy2BnzLoBBFCjDSK6sJqCu5Ag0ESmkLtBAIAIO2SwlR
143- lU5i6gTOp42RHWW7/pmW78CwUqJnYqnXROrt3h9F9xrsGkH0Fh1FRtsnncgzIhvh
144- DLQnRHnkXm0ws0jV0PF74ttoUT6BLAUsFi2SPP1zYNJ9H9fhhK/pjijtAcQwdgxu
145- wwNJ5xCEscBZCjhSRXm0d30bK1o49Cow8ZIbHtnXVP41c9QWOzX/LaGZsKQZnaMx
146- EzDk8dyyctR2f03vRSVyTFGgdpUcpbr9eTFVgikCa6ODEBv+0BnCH6yGTXwBid9g
147- w0o1e/2DviKUWCC+AlAUOubLmOIGFBuI4UR+rux9affbHcLIOTiKQXv79lW3P7W8
148- AAfniSQKfPWXrrcAAwUH/2XBqD4Uxhbs25HDUUiM/m6Gnlj6EsStg8n0nMggLhuN
149- QmPfoNByMPUqvA7sULyfr6xCYzbzRNxABHSpf85FzGQ29RF4xsA4vOOU8RDIYQ9X
150- Q8NqqR6pydprRFqWe47hsAN7BoYuhWqTtOLSBmnAnzTR5pURoqcquWYiiEavZixJ
151- 3ZRAq/HMGioJEtMFrvsZjGXuzef7f0ytfR1zYeLVWnL9Bd32CueBlI7dhYwkFe+V
152- Ep5jWOCj02C1wHcwt+uIRDJV6TdtbIiBYAdOMPk15+VBdweBXwMuYXr76+A7VeDL
153- zIhi7tKFo6WiwjKZq0dzctsJJjtIfr4K4vbiD9Ojg1iISQQYEQIACQUCSmkLtAIb
154- DAAKCRApQKupg++CauISAJ9CxYPOKhOxalBnVTLeNUkAHGg2gACeIsbobtaD4ZHG
155- 0GLl8EkfA8uhluM=
156- =zKAm
157- -----END PGP PUBLIC KEY BLOCK-----
158+ mQGiBEppC7QRBADfsOkZU6KZK+YmKw4wev5mjKJEkVGlus+NxW8wItX5sGa6kdUu
159+ twAyj7Yr92rF+ICFEP3gGU6+lGo0Nve7KxkN/1W7/m3G4zuk+ccIKmjp8KS3qn99
160+ dxy64vcji9jIllVa+XXOGIp0G8GEaj7mbkixL/bMeGfdMlv8Gf2XPpp9vwCgn/GC
161+ JKacfnw7MpLKUHOYSlb//JsEAJqao3ViNfav83jJKEkD8cf59Y8xKia5OpZqTK5W
162+ ShVnNWS3U5IVQk10ZDH97Qn/YrK387H4CyhLE9mxPXs/ul18ioiaars/q2MEKU2I
163+ XKfV21eMLO9LYd6Ny/Kqj8o5WQK2J6+NAhSwvthZcIEphcFignIuobP+B5wNFQpe
164+ DbKfA/0WvN2OwFeWRcmmd3Hz7nHTpcnSF+4QX6yHRF/5BgxkG6IqBIACQbzPn6Hm
165+ sMtm/SVf11izmDqSsQptCrOZILfLX/mE+YOl+CwWSHhl+YsFts1WOuh1EhQD26aO
166+ Z84HuHV5HFRWjDLw9LriltBVQcXbpfSrRP5bdr7Wh8vhqJTPjrQnT3BzY29kZSBQ
167+ YWNrYWdlcyA8cGFja2FnZXNAb3BzY29kZS5jb20+iGAEExECACAFAkppC7QCGwMG
168+ CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRApQKupg++Caj8sAKCOXmdG36gWji/K
169+ +o+XtBfvdMnFYQCfTCEWxRy2BnzLoBBFCjDSK6sJqCu0IENIRUYgUGFja2FnZXMg
170+ PHBhY2thZ2VzQGNoZWYuaW8+iGIEExECACIFAlQwYFECGwMGCwkIBwMCBhUIAgkK
171+ CwQWAgMBAh4BAheAAAoJEClAq6mD74JqX94An26z99XOHWpLN8ahzm7cp13t4Xid
172+ AJ9wVcgoUBzvgg91lKfv/34cmemZn7kCDQRKaQu0EAgAg7ZLCVGVTmLqBM6njZEd
173+ Zbv+mZbvwLBSomdiqddE6u3eH0X3GuwaQfQWHUVG2yedyDMiG+EMtCdEeeRebTCz
174+ SNXQ8Xvi22hRPoEsBSwWLZI8/XNg0n0f1+GEr+mOKO0BxDB2DG7DA0nnEISxwFkK
175+ OFJFebR3fRsrWjj0KjDxkhse2ddU/jVz1BY7Nf8toZmwpBmdozETMOTx3LJy1HZ/
176+ Te9FJXJMUaB2lRyluv15MVWCKQJro4MQG/7QGcIfrIZNfAGJ32DDSjV7/YO+IpRY
177+ IL4CUBQ65suY4gYUG4jhRH6u7H1p99sdwsg5OIpBe/v2Vbc/tbwAB+eJJAp89Zeu
178+ twADBQf/ZcGoPhTGFuzbkcNRSIz+boaeWPoSxK2DyfScyCAuG41CY9+g0HIw9Sq8
179+ DuxQvJ+vrEJjNvNE3EAEdKl/zkXMZDb1EXjGwDi845TxEMhhD1dDw2qpHqnJ2mtE
180+ WpZ7juGwA3sGhi6FapO04tIGacCfNNHmlRGipyq5ZiKIRq9mLEndlECr8cwaKgkS
181+ 0wWu+xmMZe7N5/t/TK19HXNh4tVacv0F3fYK54GUjt2FjCQV75USnmNY4KPTYLXA
182+ dzC364hEMlXpN21siIFgB04w+TXn5UF3B4FfAy5hevvr4DtV4MvMiGLu0oWjpaLC
183+ MpmrR3Ny2wkmO0h+vgri9uIP06ODWIhJBBgRAgAJBQJKaQu0AhsMAAoJEClAq6mD
184+ 74Jq4hIAoJ5KrYS8kCwj26SAGzglwggpvt3CAJ0bekyky56vNqoegB+y4PQVDv4K
185+ zA==
186+ =IxPr
187+ -----END PGP PUBLIC KEY BLOCK-----
188
189 chef:
190
191@@ -91,4 +95,9 @@ cloud_config: |
192 # Useful for troubleshooting cloud-init issues
193 output: {all: '| tee -a /var/log/cloud-init-output.log'}
194
195+collect_scripts:
196+ chef_installed: |
197+ #!/bin/sh
198+ dpkg-query -W -f '${Status}\n' chef
199+
200 # vi: ts=4 expandtab
201diff --git a/tests/cloud_tests/testcases/examples/install_run_chef_recipes.py b/tests/cloud_tests/testcases/examples/install_run_chef_recipes.py
202new file mode 100644
203index 0000000..b36486f
204--- /dev/null
205+++ b/tests/cloud_tests/testcases/examples/install_run_chef_recipes.py
206@@ -0,0 +1,17 @@
207+# This file is part of cloud-init. See LICENSE file for license information.
208+
209+"""cloud-init Integration Test Verify Script"""
210+from tests.cloud_tests.testcases import base
211+
212+
213+class TestChefExample(base.CloudTestCase):
214+ """Test chef module"""
215+
216+ def test_chef_basic(self):
217+ """Test chef installed"""
218+ out = self.get_data_file('chef_installed')
219+ self.assertIn('install ok', out)
220+
221+ # FIXME: Add more tests, and/or replace with comprehensive module tests
222+
223+# vi: ts=4 expandtab

Subscribers

People subscribed via source and target branches