kitchen-rackspace 0.21.2 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c5d9f0cfda1b6fe90dea83cb1122c21a7faf73ae011bc04853326875b0655018
4
- data.tar.gz: a2ec7b058022a9b8af978504e7e4e836f2951d9aae241db3fa1d08e4357fc90e
3
+ metadata.gz: e15a887394d3ed26e459527e63a809e9cc8e0ac881c831eab8b71a9a585d5833
4
+ data.tar.gz: 23b98c7da4db1e2361bf0734069a6303ed1d976334977e296bb6e2935420d2b5
5
5
  SHA512:
6
- metadata.gz: 8e70ff48c1b0874fc139b22869b3acea10d46727a038ef294f731aa22955238f71afa30480c9ed4fcfa24cd4bba2c360076967a4ac16f7561c9d95d1a5669c78
7
- data.tar.gz: 0b1d5316304df8961bf18fda87f2bddad50f9d3e19b0da9905c6f13a9773e0807c075aa57da978961417cb12ba84d6d1241c6dfeb152cf1fd5ae2d43abee6a43
6
+ metadata.gz: '059d13472f0a85ce909b4ca0ad5b14873f19c88e7b8709d4181e9980d2e0663735d3512e9d61ca1e366a6bce1b0d96599b8e4975f242275e7b6779ca5d035a3f'
7
+ data.tar.gz: 365fead87993ea3f203f48de1512e747eb6cbe8d5de7746db9a025fce7ee570065d3eba539535978823391115b84f199f07ab809e2e0427db267f01b4819caa9
@@ -9,7 +9,7 @@ jobs:
9
9
  release-please:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: googleapis/release-please-action@v4
12
+ - uses: googleapis/release-please-action@v5
13
13
  id: release
14
14
  with:
15
15
  token: ${{ secrets.PORTER_GITHUB_TOKEN }}
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.21.2"
2
+ ".": "0.22.1"
3
3
  }
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,11 +1,9 @@
1
1
  ---
2
2
  require:
3
- - chefstyle
3
+ - cookstyle/chefstyle
4
4
 
5
5
  AllCops:
6
6
  TargetRubyVersion: 3.1
7
- Include:
8
- - "**/*.rb"
9
7
  Exclude:
10
8
  - "vendor/**/*"
11
9
  - "spec/**/*"
data/.yamllint ADDED
@@ -0,0 +1,6 @@
1
+ ---
2
+ extends: default
3
+ rules:
4
+ line-length:
5
+ max: 256
6
+ level: warning
data/.yardopts ADDED
@@ -0,0 +1,11 @@
1
+ --markup markdown
2
+ --output-dir doc
3
+ --readme README.md
4
+ --title "kitchen-rackspace"
5
+ --protected
6
+ --private
7
+ lib/**/*.rb
8
+ -
9
+ CHANGELOG.md
10
+ CONTRIBUTING.md
11
+ LICENSE
data/CHANGELOG.md CHANGED
@@ -1,14 +1,47 @@
1
1
  # Kitchen-rackspace Changelog
2
2
 
3
- ## [0.21.2](https://github.com/test-kitchen/kitchen-rackspace/compare/v0.21.1...v0.21.2) (2026-01-22)
3
+ ## Unreleased
4
+
5
+ * Update actions/checkout action to v7 ([#118](https://github.com/test-kitchen/kitchen-rackspace/pull/118)) ([ffe0696](https://github.com/test-kitchen/kitchen-rackspace/commit/ffe0696))
6
+ * Update googleapis/release-please-action action to v5 ([#117](https://github.com/test-kitchen/kitchen-rackspace/pull/117)) ([836d55b](https://github.com/test-kitchen/kitchen-rackspace/commit/836d55b))
7
+ * Require Ruby 3.1+ and modernize CI ([#119](https://github.com/test-kitchen/kitchen-rackspace/pull/119)) ([d277ba1](https://github.com/test-kitchen/kitchen-rackspace/commit/d277ba1))
8
+ * Let cookstyle decide which files to lint ([#120](https://github.com/test-kitchen/kitchen-rackspace/pull/120)) ([80d515c](https://github.com/test-kitchen/kitchen-rackspace/commit/80d515c))
9
+ * Docs: rewrite README for new users and split contributor docs ([#121](https://github.com/test-kitchen/kitchen-rackspace/pull/121)) ([638440a](https://github.com/test-kitchen/kitchen-rackspace/commit/638440a))
10
+ * Remove dependabot config in favor of renovate ([#122](https://github.com/test-kitchen/kitchen-rackspace/pull/122)) ([92dcec9](https://github.com/test-kitchen/kitchen-rackspace/commit/92dcec9))
11
+
12
+ ## [0.22.1](https://github.com/test-kitchen/kitchen-rackspace/compare/v0.22.0...v0.22.1) (2026-08-30)
4
13
 
5
14
 
15
+ ### Bug Fixes
16
+
17
+ * check credentials with a call fog-rackspace actually implements ([#133](https://github.com/test-kitchen/kitchen-rackspace/issues/133)) ([a3b35fb](https://github.com/test-kitchen/kitchen-rackspace/commit/a3b35fb72290a2372d32f9b2e1156d49742ebaef))
18
+
19
+ ## [0.22.0](https://github.com/test-kitchen/kitchen-rackspace/compare/v0.21.2...v0.22.0) (2026-08-24)
20
+
21
+
22
+ ### Features
23
+
24
+ * implement the driver api version, plugin version, status, and doctor hooks ([#128](https://github.com/test-kitchen/kitchen-rackspace/issues/128)) ([5dcd484](https://github.com/test-kitchen/kitchen-rackspace/commit/5dcd484b352f0394feea9a634525a50d5e15b01c))
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * default to the general1-2 flavor instead of the retired performance1-1 ([#130](https://github.com/test-kitchen/kitchen-rackspace/issues/130)) ([5228814](https://github.com/test-kitchen/kitchen-rackspace/commit/52288148a5d177c67be1cdeb98d06aef94a5bf97))
30
+ * require test-kitchen 3.0 or newer ([#125](https://github.com/test-kitchen/kitchen-rackspace/issues/125)) ([37c1753](https://github.com/test-kitchen/kitchen-rackspace/commit/37c1753de5e63d5d2bb3772c19912b443328a41b))
31
+
32
+ ## [0.21.2](https://github.com/test-kitchen/kitchen-rackspace/compare/v0.21.1...v0.21.2) (2026-01-22)
33
+
6
34
  ### Bug Fixes
7
35
 
8
36
  * bump tk dep to allow tk 4 ([#115](https://github.com/test-kitchen/kitchen-rackspace/issues/115)) ([c6bc76c](https://github.com/test-kitchen/kitchen-rackspace/commit/c6bc76c10f4b4cd66c8b429ae50a713ff63dbe46))
9
37
 
10
- ## [0.21.1](https://github.com/test-kitchen/kitchen-rackspace/compare/v0.21.0...v0.21.1) (2024-07-01)
38
+ ### Other Changes
11
39
 
40
+ * chore(deps): update actions/checkout action to v5 ([#113](https://github.com/test-kitchen/kitchen-rackspace/pull/113)) ([76a0e97](https://github.com/test-kitchen/kitchen-rackspace/commit/76a0e97))
41
+ * Update fog-core requirement from >= 1.35, < 2.1.1 to >= 1.35, < 2.6.1 ([#112](https://github.com/test-kitchen/kitchen-rackspace/pull/112)) ([f2765bb](https://github.com/test-kitchen/kitchen-rackspace/commit/f2765bb))
42
+ * chore(deps): update actions/checkout action to v6 ([#114](https://github.com/test-kitchen/kitchen-rackspace/pull/114)) ([c1e87f1](https://github.com/test-kitchen/kitchen-rackspace/commit/c1e87f1))
43
+
44
+ ## [0.21.1](https://github.com/test-kitchen/kitchen-rackspace/compare/v0.21.0...v0.21.1) (2024-07-01)
12
45
 
13
46
  ### Features
14
47
 
@@ -19,11 +52,42 @@
19
52
 
20
53
  * release please configs ([#108](https://github.com/test-kitchen/kitchen-rackspace/issues/108)) ([e8773c1](https://github.com/test-kitchen/kitchen-rackspace/commit/e8773c18e89d8dde724bfa06028678fb43da18a0))
21
54
 
55
+ ### Other Changes
56
+
57
+ * Image data update and script fixes ([#72](https://github.com/test-kitchen/kitchen-rackspace/pull/72)) ([8048e4a](https://github.com/test-kitchen/kitchen-rackspace/commit/8048e4a))
58
+ * Add support for setting region via ENV ([#62](https://github.com/test-kitchen/kitchen-rackspace/pull/62)) ([da415e9](https://github.com/test-kitchen/kitchen-rackspace/commit/da415e9))
59
+ * Add support for user_data and config_drive options ([#75](https://github.com/test-kitchen/kitchen-rackspace/pull/75)) ([569de68](https://github.com/test-kitchen/kitchen-rackspace/commit/569de68))
60
+ * Drop Ruby 1.9/2.0 support and get the build green ([#77](https://github.com/test-kitchen/kitchen-rackspace/pull/77)) ([169da5d](https://github.com/test-kitchen/kitchen-rackspace/commit/169da5d))
61
+ * Remove gemnasium badge ([#76](https://github.com/test-kitchen/kitchen-rackspace/pull/76)) ([564dd7b](https://github.com/test-kitchen/kitchen-rackspace/commit/564dd7b))
62
+ * Update README.md ([d954a2d](https://github.com/test-kitchen/kitchen-rackspace/commit/d954a2d))
63
+ * Unpin the bundler dev dep ([#82](https://github.com/test-kitchen/kitchen-rackspace/pull/82)) ([c0ca2b6](https://github.com/test-kitchen/kitchen-rackspace/commit/c0ca2b6))
64
+ * Test on modern ruby releases ([#83](https://github.com/test-kitchen/kitchen-rackspace/pull/83)) ([0f3ba1e](https://github.com/test-kitchen/kitchen-rackspace/commit/0f3ba1e))
65
+ * Update test-kitchen requirement from ~> 1.1 to >= 1.1, < 3.0 ([#78](https://github.com/test-kitchen/kitchen-rackspace/pull/78)) ([4c0a9a2](https://github.com/test-kitchen/kitchen-rackspace/commit/4c0a9a2))
66
+ * Update rake requirement from ~> 11.0 to ~> 12.3 ([#79](https://github.com/test-kitchen/kitchen-rackspace/pull/79)) ([2335fc7](https://github.com/test-kitchen/kitchen-rackspace/commit/2335fc7))
67
+ * Optimize our requires ([#84](https://github.com/test-kitchen/kitchen-rackspace/pull/84)) ([7e2f55e](https://github.com/test-kitchen/kitchen-rackspace/commit/7e2f55e))
68
+ * Upgrade to GitHub-native Dependabot ([#85](https://github.com/test-kitchen/kitchen-rackspace/pull/85)) ([3dbf701](https://github.com/test-kitchen/kitchen-rackspace/commit/3dbf701))
69
+ * Support Test Kitchen 3.0 and require Ruby 2.5+ ([#86](https://github.com/test-kitchen/kitchen-rackspace/pull/86)) ([f64d95a](https://github.com/test-kitchen/kitchen-rackspace/commit/f64d95a))
70
+ * Update rake requirement from ~> 12.3 to ~> 13.0 ([#88](https://github.com/test-kitchen/kitchen-rackspace/pull/88)) ([a964c1c](https://github.com/test-kitchen/kitchen-rackspace/commit/a964c1c))
71
+ * Update rubocop requirement from ~> 0.57.2 to ~> 1.18.2 ([#87](https://github.com/test-kitchen/kitchen-rackspace/pull/87)) ([5c255ad](https://github.com/test-kitchen/kitchen-rackspace/commit/5c255ad))
72
+ * Update rubocop requirement from ~> 1.18.2 to ~> 1.19.0 ([#89](https://github.com/test-kitchen/kitchen-rackspace/pull/89)) ([ecf7239](https://github.com/test-kitchen/kitchen-rackspace/commit/ecf7239))
73
+ * Update rubocop requirement from ~> 1.19.0 to ~> 1.22.0 ([#92](https://github.com/test-kitchen/kitchen-rackspace/pull/92)) ([a6db161](https://github.com/test-kitchen/kitchen-rackspace/commit/a6db161))
74
+ * Update rubocop requirement from ~> 1.22.0 to ~> 1.25.0 ([#96](https://github.com/test-kitchen/kitchen-rackspace/pull/96)) ([aedff22](https://github.com/test-kitchen/kitchen-rackspace/commit/aedff22))
75
+ * Update rubocop requirement from ~> 1.25.0 to ~> 1.26.0 ([#97](https://github.com/test-kitchen/kitchen-rackspace/pull/97)) ([f08f440](https://github.com/test-kitchen/kitchen-rackspace/commit/f08f440))
76
+ * Update rubocop requirement from ~> 1.26.0 to ~> 1.27.0 ([#98](https://github.com/test-kitchen/kitchen-rackspace/pull/98)) ([c5ec7a8](https://github.com/test-kitchen/kitchen-rackspace/commit/c5ec7a8))
77
+ * Update rubocop requirement from ~> 1.27.0 to ~> 1.28.2 ([#100](https://github.com/test-kitchen/kitchen-rackspace/pull/100)) ([b97a0f4](https://github.com/test-kitchen/kitchen-rackspace/commit/b97a0f4))
78
+ * Reuse the exising workflows ([#101](https://github.com/test-kitchen/kitchen-rackspace/pull/101)) ([d9d983b](https://github.com/test-kitchen/kitchen-rackspace/commit/d9d983b))
79
+ * Remove old badges ([12fc6ef](https://github.com/test-kitchen/kitchen-rackspace/commit/12fc6ef))
80
+ * Delete .travis.yml ([19e58bc](https://github.com/test-kitchen/kitchen-rackspace/commit/19e58bc))
81
+ * Remove travis badge ([8c154d6](https://github.com/test-kitchen/kitchen-rackspace/commit/8c154d6))
82
+
22
83
  ## 0.21.0 / 2016-05-31
23
84
 
24
85
  * PR [#67] - Update image IDS; via [@martinb3]
25
86
  * PR [#65] - Add Ubuntu 16.04; via [@coderanger]
26
87
 
88
+ * Fix rubocop ([#66](https://github.com/test-kitchen/kitchen-rackspace/pull/66)) ([3908cec](https://github.com/test-kitchen/kitchen-rackspace/commit/3908cec))
89
+ * Adding Ubuntu 16.04. ([#68](https://github.com/test-kitchen/kitchen-rackspace/pull/68)) ([e1884a2](https://github.com/test-kitchen/kitchen-rackspace/commit/e1884a2))
90
+
27
91
  ## 0.20.0 / 2016-01-15
28
92
 
29
93
  * PR [#63] - Update image IDs, add Ubuntu 15.10, drop Ubuntu 15.04; via
@@ -35,6 +99,9 @@
35
99
  * PR [#57] - Add `servicelevel_wait` option; via [@martinb3]
36
100
  * PR [#56] - Add `no_passwd_lock` option; via [@martinb3]
37
101
 
102
+ * Update image list ([#53](https://github.com/test-kitchen/kitchen-rackspace/pull/53)) ([735aadd](https://github.com/test-kitchen/kitchen-rackspace/commit/735aadd))
103
+ * Drop the Ruby 1.9 CI build ([#58](https://github.com/test-kitchen/kitchen-rackspace/pull/58)) ([14a5b8b](https://github.com/test-kitchen/kitchen-rackspace/commit/14a5b8b))
104
+
38
105
  ## 0.18.0 / 2015-08-28
39
106
 
40
107
  * PR [#53] - Update image IDs, update Arch to 2015.7, drop Fedora 20, add
@@ -50,17 +117,26 @@ drop Ubuntu 14.10
50
117
  * PR [#50] - Update image IDs, support 'centos-7.0' in addition to
51
118
  'centos-7'; via [@martinb3]
52
119
 
120
+ * Update badge URLs ([8edf7d0](https://github.com/test-kitchen/kitchen-rackspace/commit/8edf7d0))
121
+
53
122
  ## 0.15.1 / 2015-04-03
54
123
 
55
124
  * PR [#49] - Update image IDs, re-add CentOS point release numbers; via
56
125
  [@martinb3]
57
126
 
127
+ * Enable Travis containers and gemset caching ([8cad60c](https://github.com/test-kitchen/kitchen-rackspace/commit/8cad60c))
128
+
58
129
  ## 0.15.0 / 2015-04-02
59
130
 
60
131
  * PR [#48] - Drop references to retired Ubuntu 10.04 image
61
132
  * PR [#46] - Update all image IDs, add Scientific 7, remove references to
62
133
  point releases that Rackspace no longer uses in image names; via [@martinb3]
63
134
 
135
+ * Fix unit tests ([#47](https://github.com/test-kitchen/kitchen-rackspace/pull/47)) ([23de895](https://github.com/test-kitchen/kitchen-rackspace/commit/23de895))
136
+ * s/2014/2015 ([4ee45e1](https://github.com/test-kitchen/kitchen-rackspace/commit/4ee45e1))
137
+ * Fix bad syntax in gemspec ([9883188](https://github.com/test-kitchen/kitchen-rackspace/commit/9883188))
138
+ * Add dev dep gem constraints to satisfy warnings ([46540ad](https://github.com/test-kitchen/kitchen-rackspace/commit/46540ad))
139
+
64
140
  ## 0.14.0 / 2014-12-09
65
141
 
66
142
  * PR [#45] - Add Ubuntu 14.10 and Fedora 21
@@ -109,6 +185,10 @@ drivers, with all its bug fixes; update image IDs
109
185
 
110
186
  * PR [#35] - Add option to wait on RackConnect, via [@martinb3]
111
187
 
188
+ ### Other Changes
189
+
190
+ * Drop support for Ruby 1.9.2 ([52cb429](https://github.com/test-kitchen/kitchen-rackspace/commit/52cb429))
191
+
112
192
  ## 0.7.0 / 2014-07-09
113
193
 
114
194
  ### New Features
@@ -117,6 +197,13 @@ drivers, with all its bug fixes; update image IDs
117
197
  * PR [#29] - Support using a sleep instead of TCP check in cases where new
118
198
  servers might fail the TCP; via [@martinb3]
119
199
 
200
+ ### Other Changes
201
+
202
+ * Some documentation clarification. ([#28](https://github.com/test-kitchen/kitchen-rackspace/pull/28)) ([2ed61cd](https://github.com/test-kitchen/kitchen-rackspace/commit/2ed61cd))
203
+ * Fix #18 ([#30](https://github.com/test-kitchen/kitchen-rackspace/pull/30)) ([ff365a8](https://github.com/test-kitchen/kitchen-rackspace/commit/ff365a8))
204
+ * Add two new configuration options, RE: TCP checks ([#32](https://github.com/test-kitchen/kitchen-rackspace/pull/32)) ([475841f](https://github.com/test-kitchen/kitchen-rackspace/commit/475841f))
205
+ * Support custom networks ([#33](https://github.com/test-kitchen/kitchen-rackspace/pull/33)) ([11bbbb8](https://github.com/test-kitchen/kitchen-rackspace/commit/11bbbb8))
206
+
120
207
  ## 0.6.1 / 2014-06-03
121
208
 
122
209
  ### Bug Fixes
@@ -133,6 +220,11 @@ servers might fail the TCP; via [@martinb3]
133
220
 
134
221
  * PR [#24] - Error out immediately when trying to install in Ruby 1.8
135
222
 
223
+ ### Other Changes
224
+
225
+ * Remove reference to TK 1.0--it's 1.1.x now ([482add8](https://github.com/test-kitchen/kitchen-rackspace/commit/482add8))
226
+ * Update version for release ([9b33f85](https://github.com/test-kitchen/kitchen-rackspace/commit/9b33f85))
227
+
136
228
  ## 0.5.0 / 2014-05-01
137
229
 
138
230
  ### Improvements
@@ -141,6 +233,15 @@ servers might fail the TCP; via [@martinb3]
141
233
  * PR [#22] - Update all the images with new IDs
142
234
  * PR [#21] - Add Ubuntu 14.04 to the list of known images; via [@pezholio]
143
235
 
236
+ ### Other Changes
237
+
238
+ * Fix #13 - Rename 'name' option to 'server_name' ([#15](https://github.com/test-kitchen/kitchen-rackspace/pull/15)) ([bca9e15](https://github.com/test-kitchen/kitchen-rackspace/commit/bca9e15))
239
+ * Bump for 0.3.0 release ([43266dc](https://github.com/test-kitchen/kitchen-rackspace/commit/43266dc))
240
+ * Add Coveralls support, maybe ([#16](https://github.com/test-kitchen/kitchen-rackspace/pull/16)) ([d3d2e85](https://github.com/test-kitchen/kitchen-rackspace/commit/d3d2e85))
241
+ * Improve defaults ([#17](https://github.com/test-kitchen/kitchen-rackspace/pull/17)) ([e320b29](https://github.com/test-kitchen/kitchen-rackspace/commit/e320b29))
242
+ * README and CHANGELOG updates ([3d04c23](https://github.com/test-kitchen/kitchen-rackspace/commit/3d04c23))
243
+ * Update URLs to test-kitchen org ([#19](https://github.com/test-kitchen/kitchen-rackspace/pull/19)) ([7c31774](https://github.com/test-kitchen/kitchen-rackspace/commit/7c31774))
244
+
144
245
  ## 0.4.0 / 2014-01-27
145
246
 
146
247
  ### New Features
@@ -177,6 +278,14 @@ boot times, via [@coderanger]
177
278
  * PR [#7] - Clean up/refactor to pass style checks
178
279
  * PR [#9] - Add some (probably overkill) RSpec tests
179
280
 
281
+ ### Other Changes
282
+
283
+ * First draft, seems to be working ([a084294](https://github.com/test-kitchen/kitchen-rackspace/commit/a084294))
284
+ * Update README ([580d9c9](https://github.com/test-kitchen/kitchen-rackspace/commit/580d9c9))
285
+ * Ignore .kitchen ([d3e6891](https://github.com/test-kitchen/kitchen-rackspace/commit/d3e6891))
286
+ * Fog doesn't actually need a private key ([4f103f3](https://github.com/test-kitchen/kitchen-rackspace/commit/4f103f3))
287
+ * Update date for release ([873a2be](https://github.com/test-kitchen/kitchen-rackspace/commit/873a2be))
288
+
180
289
  ## 0.1.0 / 2013-03-12
181
290
 
182
291
  * Initial release! Woo!
@@ -216,7 +325,6 @@ boot times, via [@coderanger]
216
325
  [#9]: https://github.com/test-kitchen/kitchen-rackspace/pull/9
217
326
  [#8]: https://github.com/test-kitchen/kitchen-rackspace/pull/8
218
327
  [#7]: https://github.com/test-kitchen/kitchen-rackspace/pull/7
219
-
220
328
  [@marcoamorales]: https://github.com/marcoamorales
221
329
  [@steve-jansen]: https://github.com/steve-jansen
222
330
  [@hhoover]: https://github.com/hhoover
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,207 @@
1
+ # Contributing to kitchen-rackspace
2
+
3
+ > **This project is no longer under active development** and has no active
4
+ > maintainers. Issues filed on GitHub will most likely not be triaged. Pull
5
+ > requests are still welcome. If you are interested in maintaining the project,
6
+ > come and talk to us in `#test-kitchen` on
7
+ > [Chef Community Slack](https://community-slack.chef.io/).
8
+
9
+ ## Reporting issues
10
+
11
+ Report bugs and request features on the [issue tracker](https://github.com/test-kitchen/kitchen-rackspace/issues), keeping the note above in mind. For bugs, please include:
12
+
13
+ - the version of kitchen-rackspace and Test Kitchen you are using
14
+ - your `kitchen.yml` with credentials removed
15
+ - the output of the failing command, ideally with `-l debug`
16
+
17
+ ## Development setup
18
+
19
+ Clone the repository and install the dependencies:
20
+
21
+ ```sh
22
+ git clone https://github.com/test-kitchen/kitchen-rackspace.git
23
+ cd kitchen-rackspace
24
+ bundle install
25
+ ```
26
+
27
+ ## Running the tests
28
+
29
+ Run the unit tests:
30
+
31
+ ```sh
32
+ bundle exec rspec
33
+ ```
34
+
35
+ Or through Rake, which adds colour and honours `SEED`, `VERBOSE`, and a
36
+ `--tag` argument:
37
+
38
+ ```sh
39
+ bundle exec rake test
40
+ ```
41
+
42
+ And the style check:
43
+
44
+ ```sh
45
+ bundle exec cookstyle --chefstyle
46
+ ```
47
+
48
+ **Pass `--chefstyle`.** CI runs it that way. Without the flag, cookstyle falls
49
+ back to stock RuboCop defaults, disagrees with this codebase about string
50
+ quoting, and reports over a hundred offenses that are not real.
51
+
52
+ ### How the specs are laid out
53
+
54
+ There is one spec file per area of the driver, so the file you need to open is
55
+ the one named after the thing you changed:
56
+
57
+ | File | Covers |
58
+ | --- | --- |
59
+ | `spec/kitchen/driver/rackspace/plugin_spec.rb` | API version and plugin version |
60
+ | `spec/kitchen/driver/rackspace/configuration_spec.rb` | `default_config` values, overrides, credentials from the environment |
61
+ | `spec/kitchen/driver/rackspace/image_spec.rb` | platform-name to image-ID resolution and the bundled `data/images.json` |
62
+ | `spec/kitchen/driver/rackspace/server_name_spec.rb` | the generated server name |
63
+ | `spec/kitchen/driver/rackspace/create_spec.rb` | `#create`, the RackConnect and service level waits, ServiceNet |
64
+ | `spec/kitchen/driver/rackspace/tcp_check_spec.rb` | waiting for the instance to accept a login |
65
+ | `spec/kitchen/driver/rackspace/destroy_spec.rb` | `#destroy` |
66
+ | `spec/kitchen/driver/rackspace/status_spec.rb` | `#status` and `#doctor` |
67
+ | `spec/kitchen/driver/rackspace/compute_spec.rb` | the fog connection, `#create_server`, and the network list |
68
+
69
+ `spec/support/` holds the shared setup:
70
+
71
+ - `driver_context.rb` — the `"a driver for an instance"` shared context, which
72
+ gives an example group a logger, a fake Test Kitchen instance, and a driver
73
+ built from `config`. Nearly every group includes it. `"a built server"` adds
74
+ a server double that has finished building.
75
+ - `rackspace_environment.rb` — clears `RACKSPACE_*` and `OS_*` out of the
76
+ environment around every example and puts your own back afterwards, so
77
+ credentials in your shell cannot make a spec pass or fail.
78
+
79
+ When you stub a fog object, reach for `instance_double` rather than `double`.
80
+ A plain double will happily answer a method fog does not have, which is how a
81
+ `kitchen doctor` that called a nonexistent `servers.summary` shipped with a
82
+ green test suite.
83
+
84
+ Many style offenses can be corrected automatically:
85
+
86
+ ```sh
87
+ bundle exec cookstyle --chefstyle -a
88
+ ```
89
+
90
+ The unit tests stub the Rackspace API, so they do not build servers and do not
91
+ require an account.
92
+
93
+ The YARD documentation has its own tasks:
94
+
95
+ ```sh
96
+ bundle exec rake doc # build the docs
97
+ bundle exec rake doc_coverage # list anything in lib/ still undocumented
98
+ ```
99
+
100
+ ### Manual testing against Rackspace
101
+
102
+ Changes that touch server creation should also be exercised against a real
103
+ account, since the stubbed tests cannot catch API-level regressions. **This
104
+ builds billable servers.** Export `RACKSPACE_USERNAME`, `RACKSPACE_API_KEY` and
105
+ `RACKSPACE_REGION`, run `kitchen test`, then confirm in the Rackspace control
106
+ panel that no servers were left behind — a run that fails partway through can
107
+ leave one running.
108
+
109
+ ## Submitting changes
110
+
111
+ 1. Fork the repository.
112
+ 2. Create a feature branch off `main`.
113
+ 3. Make your change, adding or updating tests to cover it.
114
+ 4. Make sure `bundle exec rake test` and `bundle exec cookstyle --chefstyle` pass.
115
+ 5. Push the branch to your fork and open a pull request.
116
+
117
+ Please keep pull requests focused on a single change — it makes review much
118
+ faster. Update the documentation in `README.md` when you add or change a
119
+ configuration option.
120
+
121
+ ### Commit messages
122
+
123
+ This project uses [Conventional Commits](https://www.conventionalcommits.org/).
124
+ release-please reads the commit subjects on `main` to decide the next version
125
+ and to write the changelog, so the prefix matters:
126
+
127
+ | Prefix | Effect |
128
+ | --- | --- |
129
+ | `fix:` | patch release |
130
+ | `feat:` | minor release |
131
+ | `docs:`, `chore:`, `style:`, `test:` | no release |
132
+ | `feat!:`, or a `BREAKING CHANGE:` footer | major release |
133
+
134
+ Pull requests are squash-merged, so it is the PR title that lands on `main` and
135
+ gets parsed. Write it as a Conventional Commit.
136
+
137
+ ## Maintaining the bundled data
138
+
139
+ ### data/images.json
140
+
141
+ The driver maps a Test Kitchen platform name to a Rackspace image ID using
142
+ `data/images.json`. **That table has not been regenerated since 2016** — its
143
+ newest entries are Ubuntu 16.04, CentOS 7, Debian 8, and Fedora 25 — so modern
144
+ platform names do not resolve and users have to set `image_id` by hand.
145
+
146
+ Refreshing it is the most useful contribution available here. It needs a
147
+ Rackspace account:
148
+
149
+ ```sh
150
+ export RACKSPACE_USERNAME="myuser"
151
+ export RACKSPACE_API_KEY="myapikey"
152
+ export RACKSPACE_REGION="ord"
153
+
154
+ bundle exec ruby helpers/dump_image_list.rb # review what the account sees
155
+ bundle exec ruby helpers/dump_image_list.rb --json > data/images.json
156
+ ```
157
+
158
+ Image IDs are per-region, so regenerate from the region most users build in.
159
+ The helper derives platform names from each image's OpenStack metadata:
160
+ `ubuntu-22.04` and `ubuntu-22` from the version, plus the bare `ubuntu` for the
161
+ newest version of that distro. Images without that metadata — custom snapshots,
162
+ mostly — are skipped.
163
+
164
+ A refresh also needs the platform-resolution specs updated, since they assert
165
+ against the current table.
166
+
167
+ ### helpers/dump_flavor_list.rb
168
+
169
+ Lists the flavors an account can build, for checking the flavor tables in the
170
+ README against reality:
171
+
172
+ ```sh
173
+ bundle exec ruby helpers/dump_flavor_list.rb
174
+ ```
175
+
176
+ ### Running the helpers
177
+
178
+ Both helpers must run under Bundler:
179
+
180
+ ```sh
181
+ bundle exec ruby helpers/dump_image_list.rb
182
+ ```
183
+
184
+ Outside Bundler they resolve a newer fog-core, and `require "fog/rackspace"`
185
+ raises `NameError: wrong constant name CDN v2`. fog-rackspace registers a
186
+ service with a space in its name that newer fog-core cannot constantize, which
187
+ is why the gemspec pins `fog-core < 2.3`.
188
+
189
+ ## Release process
190
+
191
+ Releases are automated by [release-please](.github/workflows/publish.yaml), and
192
+ maintainers only have to merge a pull request.
193
+
194
+ 1. Every push to `main` updates a standing release pull request titled
195
+ `chore(main): release X.Y.Z`. It accumulates the changes since the last
196
+ release and derives the version from their commit prefixes.
197
+ 2. Merging that pull request tags the release and publishes the gem to RubyGems
198
+ and GitHub Packages.
199
+
200
+ **Do not hand-edit `CHANGELOG.md` or
201
+ `lib/kitchen/driver/rackspace_version.rb`.** release-please owns both — they are
202
+ its `changelog-path` and `version-file` in
203
+ [release-please-config.json](release-please-config.json) — and editing them
204
+ directly conflicts with the release pull request.
205
+
206
+ The release pull request does not resolve its own conflicts. If it picks one up,
207
+ rebase it by hand, keeping `main`'s content and the bot's version bump.
data/Gemfile CHANGED
@@ -1,13 +1,15 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gemspec
4
-
3
+ gemspec development_group: :test
5
4
  group :test do
6
- gem "bundler"
7
5
  gem "rake"
8
6
  gem "rspec", "~> 3.2"
9
7
  end
10
8
 
11
- group :chefstyle do
12
- gem "chefstyle", "2.2.3"
9
+ group :docs do
10
+ gem "yard"
11
+ end
12
+
13
+ group :cookstyle do
14
+ gem "cookstyle"
13
15
  end