berkshelf 5.2.0 → 8.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +19 -47
  3. data/Rakefile +14 -4
  4. data/berkshelf.gemspec +61 -40
  5. data/bin/berks +2 -2
  6. data/lib/berkshelf/api-client.rb +1 -0
  7. data/lib/berkshelf/api_client/chef_server_connection.rb +29 -0
  8. data/lib/berkshelf/api_client/connection.rb +57 -0
  9. data/lib/berkshelf/api_client/errors.rb +10 -0
  10. data/lib/berkshelf/api_client/remote_cookbook.rb +56 -0
  11. data/lib/berkshelf/api_client/version.rb +5 -0
  12. data/lib/berkshelf/api_client.rb +24 -0
  13. data/lib/berkshelf/berksfile.rb +149 -122
  14. data/lib/berkshelf/cached_cookbook.rb +127 -24
  15. data/lib/berkshelf/chef_config_compat.rb +51 -0
  16. data/lib/berkshelf/chef_repo_universe.rb +47 -0
  17. data/lib/berkshelf/cli.rb +143 -174
  18. data/lib/berkshelf/commands/shelf.rb +20 -19
  19. data/lib/berkshelf/community_rest.rb +59 -94
  20. data/lib/berkshelf/config.rb +97 -127
  21. data/lib/berkshelf/cookbook_store.rb +7 -6
  22. data/lib/berkshelf/core_ext/file.rb +1 -1
  23. data/lib/berkshelf/core_ext/file_utils.rb +4 -4
  24. data/lib/berkshelf/core_ext.rb +1 -1
  25. data/lib/berkshelf/dependency.rb +25 -32
  26. data/lib/berkshelf/downloader.rb +66 -39
  27. data/lib/berkshelf/errors.rb +23 -17
  28. data/lib/berkshelf/file_syncer.rb +24 -47
  29. data/lib/berkshelf/formatters/human.rb +7 -5
  30. data/lib/berkshelf/formatters/json.rb +6 -6
  31. data/lib/berkshelf/installer.rb +120 -111
  32. data/lib/berkshelf/location.rb +14 -14
  33. data/lib/berkshelf/locations/base.rb +1 -1
  34. data/lib/berkshelf/locations/git.rb +16 -24
  35. data/lib/berkshelf/locations/github.rb +2 -2
  36. data/lib/berkshelf/locations/path.rb +2 -2
  37. data/lib/berkshelf/lockfile.rb +326 -328
  38. data/lib/berkshelf/logger.rb +64 -1
  39. data/lib/berkshelf/mixin/git.rb +6 -5
  40. data/lib/berkshelf/packager.rb +44 -10
  41. data/lib/berkshelf/resolver/graph.rb +1 -1
  42. data/lib/berkshelf/resolver.rb +4 -4
  43. data/lib/berkshelf/ridley_compat.rb +109 -0
  44. data/lib/berkshelf/shell.rb +2 -1
  45. data/lib/berkshelf/shell_out.rb +18 -0
  46. data/lib/berkshelf/source.rb +77 -33
  47. data/lib/berkshelf/source_uri.rb +4 -4
  48. data/lib/berkshelf/ssl_policies.rb +38 -0
  49. data/lib/berkshelf/thor.rb +1 -1
  50. data/lib/berkshelf/thor_ext/hash_with_indifferent_access.rb +1 -1
  51. data/lib/berkshelf/thor_ext.rb +1 -1
  52. data/lib/berkshelf/uploader.rb +106 -70
  53. data/lib/berkshelf/validator.rb +13 -5
  54. data/lib/berkshelf/version.rb +1 -1
  55. data/lib/berkshelf/visualizer.rb +16 -11
  56. data/lib/berkshelf.rb +106 -81
  57. data/spec/config/knife.rb +4 -4
  58. data/spec/data/trusted_certs/example.crt +22 -0
  59. data/spec/fixtures/Berksfile +3 -3
  60. data/spec/fixtures/complex-cookbook-path/cookbooks/app/metadata.rb +2 -0
  61. data/spec/fixtures/complex-cookbook-path/cookbooks/jenkins/metadata.rb +2 -0
  62. data/spec/fixtures/complex-cookbook-path/cookbooks/jenkins-config/metadata.rb +4 -0
  63. data/spec/fixtures/cookbook-path/jenkins-config/metadata.rb +3 -3
  64. data/spec/fixtures/cookbook-path-uploader/apt-2.3.6/metadata.rb +2 -0
  65. data/spec/fixtures/cookbook-path-uploader/build-essential-1.4.2/metadata.rb +2 -0
  66. data/spec/fixtures/cookbook-path-uploader/jenkins-2.0.3/metadata.rb +5 -0
  67. data/spec/fixtures/cookbook-path-uploader/jenkins-config-0.1.0/metadata.rb +4 -0
  68. data/spec/fixtures/cookbook-path-uploader/runit-1.5.8/metadata.rb +5 -0
  69. data/spec/fixtures/cookbook-path-uploader/yum-3.0.6/metadata.rb +2 -0
  70. data/spec/fixtures/cookbook-path-uploader/yum-epel-0.2.0/metadata.rb +3 -0
  71. data/spec/fixtures/cookbook-store/jenkins-2.0.3/metadata.rb +5 -5
  72. data/spec/fixtures/cookbook-store/jenkins-2.0.4/metadata.rb +4 -4
  73. data/spec/fixtures/cookbooks/example_cookbook/metadata.rb +3 -3
  74. data/spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb +3 -3
  75. data/spec/spec_helper.rb +56 -64
  76. data/spec/support/chef_api.rb +15 -16
  77. data/spec/support/chef_server.rb +71 -69
  78. data/spec/support/git.rb +59 -58
  79. data/spec/support/kitchen.rb +0 -14
  80. data/spec/support/matchers/file_system_matchers.rb +4 -5
  81. data/spec/support/matchers/filepath_matchers.rb +2 -2
  82. data/spec/support/path_helpers.rb +17 -17
  83. data/spec/support/shared_examples/formatter.rb +1 -1
  84. data/spec/tmp/berkshelf/cookbooks/fake-0.1.0/attributes/default.rb +0 -0
  85. data/spec/tmp/berkshelf/cookbooks/fake-0.1.0/files/default/file.h +0 -0
  86. data/spec/tmp/berkshelf/cookbooks/fake-0.1.0/metadata.rb +2 -0
  87. data/spec/tmp/berkshelf/cookbooks/fake-0.1.0/recipes/default.rb +0 -0
  88. data/spec/tmp/berkshelf/cookbooks/fake-0.1.0/templates/default/template.erb +0 -0
  89. data/spec/tmp/berkshelf/cookbooks/fake-0.2.0/attributes/default.rb +0 -0
  90. data/spec/tmp/berkshelf/cookbooks/fake-0.2.0/files/default/file.h +0 -0
  91. data/spec/tmp/berkshelf/cookbooks/fake-0.2.0/metadata.rb +2 -0
  92. data/spec/tmp/berkshelf/cookbooks/fake-0.2.0/recipes/default.rb +0 -0
  93. data/spec/tmp/berkshelf/cookbooks/fake-0.2.0/templates/default/template.erb +0 -0
  94. data/spec/tmp/berkshelf/cookbooks/fake-1.0.0/attributes/default.rb +0 -0
  95. data/spec/tmp/berkshelf/cookbooks/fake-1.0.0/files/default/file.h +0 -0
  96. data/spec/tmp/berkshelf/cookbooks/fake-1.0.0/metadata.rb +2 -0
  97. data/spec/tmp/berkshelf/cookbooks/fake-1.0.0/recipes/default.rb +0 -0
  98. data/spec/tmp/berkshelf/cookbooks/fake-1.0.0/templates/default/template.erb +0 -0
  99. data/spec/unit/berkshelf/berksfile_spec.rb +84 -105
  100. data/spec/unit/berkshelf/berkshelf/api_client/chef_server_connection_spec.rb +65 -0
  101. data/spec/unit/berkshelf/berkshelf/api_client/connection_spec.rb +157 -0
  102. data/spec/unit/berkshelf/berkshelf/api_client/remote_cookbook_spec.rb +23 -0
  103. data/spec/unit/berkshelf/berkshelf/api_client_spec.rb +9 -0
  104. data/spec/unit/berkshelf/cached_cookbook_spec.rb +45 -47
  105. data/spec/unit/berkshelf/chef_repo_universe_spec.rb +37 -0
  106. data/spec/unit/berkshelf/cli_spec.rb +7 -8
  107. data/spec/unit/berkshelf/community_rest_spec.rb +82 -90
  108. data/spec/unit/berkshelf/config_spec.rb +51 -22
  109. data/spec/unit/berkshelf/cookbook_store_spec.rb +41 -41
  110. data/spec/unit/berkshelf/core_ext/file_utils_spec.rb +7 -8
  111. data/spec/unit/berkshelf/core_ext/pathname_spec.rb +1 -1
  112. data/spec/unit/berkshelf/dependency_spec.rb +48 -48
  113. data/spec/unit/berkshelf/downloader_spec.rb +191 -34
  114. data/spec/unit/berkshelf/errors_spec.rb +3 -3
  115. data/spec/unit/berkshelf/file_syncer_spec.rb +87 -87
  116. data/spec/unit/berkshelf/formatters/base_spec.rb +23 -23
  117. data/spec/unit/berkshelf/formatters/human_spec.rb +2 -2
  118. data/spec/unit/berkshelf/formatters/json_spec.rb +2 -2
  119. data/spec/unit/berkshelf/formatters/null_spec.rb +3 -3
  120. data/spec/unit/berkshelf/installer_spec.rb +8 -8
  121. data/spec/unit/berkshelf/location_spec.rb +11 -11
  122. data/spec/unit/berkshelf/locations/base_spec.rb +35 -36
  123. data/spec/unit/berkshelf/locations/git_spec.rb +90 -93
  124. data/spec/unit/berkshelf/locations/path_spec.rb +40 -41
  125. data/spec/unit/berkshelf/lockfile_parser_spec.rb +71 -71
  126. data/spec/unit/berkshelf/lockfile_spec.rb +205 -211
  127. data/spec/unit/berkshelf/logger_spec.rb +3 -3
  128. data/spec/unit/berkshelf/mixin/logging_spec.rb +5 -5
  129. data/spec/unit/berkshelf/packager_spec.rb +2 -2
  130. data/spec/unit/berkshelf/resolver/graph_spec.rb +10 -8
  131. data/spec/unit/berkshelf/resolver_spec.rb +17 -17
  132. data/spec/unit/berkshelf/ridley_compat_spec.rb +16 -0
  133. data/spec/unit/berkshelf/shell_spec.rb +34 -34
  134. data/spec/unit/berkshelf/source_spec.rb +186 -20
  135. data/spec/unit/berkshelf/source_uri_spec.rb +1 -1
  136. data/spec/unit/berkshelf/ssl_policies_spec.rb +86 -0
  137. data/spec/unit/berkshelf/uploader_spec.rb +146 -64
  138. data/spec/unit/berkshelf/validator_spec.rb +23 -16
  139. data/spec/unit/berkshelf/visualizer_spec.rb +24 -15
  140. data/spec/unit/berkshelf_spec.rb +18 -18
  141. metadata +138 -289
  142. data/.gitignore +0 -29
  143. data/.travis.yml +0 -64
  144. data/CHANGELOG.legacy.md +0 -307
  145. data/CHANGELOG.md +0 -1358
  146. data/CONTRIBUTING.md +0 -64
  147. data/Gemfile.lock +0 -399
  148. data/Guardfile +0 -23
  149. data/PLUGINS.md +0 -25
  150. data/README.md +0 -70
  151. data/Thorfile +0 -61
  152. data/appveyor.yml +0 -31
  153. data/docs/berkshelf_for_newcomers.md +0 -65
  154. data/features/berksfile.feature +0 -46
  155. data/features/commands/apply.feature +0 -41
  156. data/features/commands/contingent.feature +0 -48
  157. data/features/commands/cookbook.feature +0 -35
  158. data/features/commands/info.feature +0 -99
  159. data/features/commands/init.feature +0 -27
  160. data/features/commands/install.feature +0 -636
  161. data/features/commands/list.feature +0 -78
  162. data/features/commands/outdated.feature +0 -130
  163. data/features/commands/package.feature +0 -17
  164. data/features/commands/search.feature +0 -17
  165. data/features/commands/shelf/list.feature +0 -32
  166. data/features/commands/shelf/show.feature +0 -143
  167. data/features/commands/shelf/uninstall.feature +0 -96
  168. data/features/commands/show.feature +0 -83
  169. data/features/commands/update.feature +0 -142
  170. data/features/commands/upload.feature +0 -426
  171. data/features/commands/vendor.feature +0 -111
  172. data/features/commands/verify.feature +0 -29
  173. data/features/commands/viz.feature +0 -66
  174. data/features/community_site.feature +0 -37
  175. data/features/config.feature +0 -111
  176. data/features/help.feature +0 -11
  177. data/features/json_formatter.feature +0 -161
  178. data/features/lifecycle.feature +0 -378
  179. data/features/lockfile.feature +0 -378
  180. data/features/step_definitions/berksfile_steps.rb +0 -39
  181. data/features/step_definitions/chef/config_steps.rb +0 -12
  182. data/features/step_definitions/chef_server_steps.rb +0 -60
  183. data/features/step_definitions/cli_steps.rb +0 -18
  184. data/features/step_definitions/config_steps.rb +0 -46
  185. data/features/step_definitions/environment_steps.rb +0 -7
  186. data/features/step_definitions/filesystem_steps.rb +0 -269
  187. data/features/step_definitions/gem_steps.rb +0 -13
  188. data/features/step_definitions/json_steps.rb +0 -23
  189. data/features/step_definitions/utility_steps.rb +0 -11
  190. data/features/support/aruba.rb +0 -12
  191. data/features/support/env.rb +0 -82
  192. data/generator_files/Berksfile.erb +0 -11
  193. data/generator_files/CHANGELOG.md.erb +0 -3
  194. data/generator_files/Gemfile.erb +0 -8
  195. data/generator_files/README.md.erb +0 -42
  196. data/generator_files/Thorfile.erb +0 -11
  197. data/generator_files/Vagrantfile.erb +0 -117
  198. data/generator_files/chefignore +0 -94
  199. data/generator_files/default_recipe.erb +0 -6
  200. data/generator_files/default_test.rb.erb +0 -11
  201. data/generator_files/gitignore.erb +0 -23
  202. data/generator_files/helpers.rb.erb +0 -7
  203. data/generator_files/licenses/apachev2.erb +0 -13
  204. data/generator_files/licenses/gplv2.erb +0 -15
  205. data/generator_files/licenses/gplv3.erb +0 -14
  206. data/generator_files/licenses/mit.erb +0 -20
  207. data/generator_files/licenses/reserved.erb +0 -3
  208. data/generator_files/metadata.rb.erb +0 -11
  209. data/lib/berkshelf/base_generator.rb +0 -43
  210. data/lib/berkshelf/commands/test_command.rb +0 -13
  211. data/lib/berkshelf/cookbook_generator.rb +0 -133
  212. data/lib/berkshelf/init_generator.rb +0 -195
  213. data/spec/fixtures/cookbooks/example_cookbook/.gitignore +0 -2
  214. data/spec/fixtures/cookbooks/example_cookbook/.kitchen.yml +0 -26
  215. data/spec/unit/berkshelf/cookbook_generator_spec.rb +0 -110
  216. data/spec/unit/berkshelf/init_generator_spec.rb +0 -263
@@ -1,66 +0,0 @@
1
- @graphviz @not-windows
2
- Feature: berks viz
3
- Scenario: With no options
4
- * I have a Berksfile pointing at the local Berkshelf API with:
5
- """
6
- cookbook 'fake', '1.0.0'
7
- """
8
- * I write to "Berksfile.lock" with:
9
- """
10
- DEPENDENCIES
11
- fake (= 1.0.0)
12
-
13
- GRAPH
14
- fake (1.0.0)
15
- """
16
- * I successfully run `berks viz`
17
- * a file named "graph.png" should exist
18
-
19
- Scenario: When there are transitive dependencies
20
- * I have a Berksfile pointing at the local Berkshelf API with:
21
- """
22
- cookbook 'fake', '1.0.0'
23
- """
24
- * I write to "Berksfile.lock" with:
25
- """
26
- DEPENDENCIES
27
- fake (= 1.0.0)
28
-
29
- GRAPH
30
- dep (1.0.0)
31
- fake (1.0.0)
32
- dep (~> 1.0.0)
33
- """
34
- * I successfully run `berks viz`
35
- * a file named "graph.png" should exist
36
-
37
- Scenario: When a custom output is given
38
- * I have a Berksfile pointing at the local Berkshelf API with:
39
- """
40
- cookbook 'fake', '1.0.0'
41
- """
42
- * I write to "Berksfile.lock" with:
43
- """
44
- DEPENDENCIES
45
- fake (= 1.0.0)
46
-
47
- GRAPH
48
- dep (1.0.0)
49
- fake (1.0.0)
50
- dep (~> 1.0.0)
51
- """
52
- * I successfully run `berks viz --outfile ponies.png`
53
- * a file named "graph.png" should not exist
54
- * a file named "ponies.png" should exist
55
-
56
- Scenario: When there is no lockfile present
57
- * I have a Berksfile pointing at the local Berkshelf API with:
58
- """
59
- cookbook 'fake', '1.0.0'
60
- """
61
- * I run `berks viz`
62
- * the output should contain:
63
- """
64
- Lockfile not found! Run `berks install` to create the lockfile.
65
- """
66
- * the exit status should be "LockfileNotFound"
@@ -1,37 +0,0 @@
1
- Feature: Installing cookbooks from the community site
2
- Scenario: when the cookbook exists
3
- Given I have a Berksfile pointing at the community API endpoint with:
4
- """
5
- cookbook 'apache2', '1.6.6'
6
- """
7
- When I successfully run `berks install`
8
- Then the output should contain:
9
- """
10
- Installing apache2 (1.6.6)
11
- """
12
- And the cookbook store should have the cookbooks:
13
- | apache2 | 1.6.6 |
14
-
15
- Scenario: when the cookbook does not exist
16
- Given I have a Berksfile pointing at the community API endpoint with:
17
- """
18
- cookbook '1234567890'
19
- """
20
- When I run `berks install`
21
- Then the output should contain:
22
- """
23
- Unable to find a solution for demands: 1234567890 (>= 0.0.0)
24
- """
25
- And the exit status should be "NoSolutionError"
26
-
27
- Scenario: when the cookbook exists, but the version does not
28
- Given I have a Berksfile pointing at the community API endpoint with:
29
- """
30
- cookbook 'apache2', '0.0.0'
31
- """
32
- When I run `berks install`
33
- Then the output should contain:
34
- """
35
- Unable to find a solution for demands: apache2 (= 0.0.0)
36
- """
37
- And the exit status should be "NoSolutionError"
@@ -1,111 +0,0 @@
1
- Feature: Reading a Berkshelf configuration file
2
- Scenario: Missing a Berkshelf configuration file
3
- When I successfully run `berks cookbook sparkle_motion`
4
- Then the resulting "sparkle_motion" Vagrantfile should contain:
5
- | config.omnibus.chef_version = 'latest' |
6
- | config.vm.box = 'bento/ubuntu-14.04' |
7
-
8
- Scenario: Using a Berkshelf configuration file that sets the vagrant-omnibus plugin chef version
9
- Given I have a Berkshelf config file containing:
10
- """
11
- {
12
- "vagrant": {
13
- "omnibus": {
14
- "version": "11.4.4"
15
- },
16
- "vm": {
17
- "box": "bento/ubuntu-14.04",
18
- "forward_port": {
19
- "12345": "54321"
20
- }
21
- }
22
- }
23
- }
24
- """
25
- When I successfully run `berks cookbook sparkle_motion`
26
- Then the resulting "sparkle_motion" Vagrantfile should contain:
27
- | config.omnibus.chef_version = '11.4.4' |
28
- | config.vm.box = 'bento/ubuntu-14.04' |
29
- | config.vm.network :forwarded_port, guest: 12345, host: 54321 |
30
- | config.vm.network :private_network, type: 'dhcp' |
31
- And the exit status should be 0
32
-
33
- Scenario: Using a Berkshelf configuration file that sets the vagrant-omnibus plugin chef version to latest
34
- Given I have a Berkshelf config file containing:
35
- """
36
- {
37
- "vagrant": {
38
- "omnibus": {
39
- "version": "latest"
40
- },
41
- "vm": {
42
- "box": "bento/ubuntu-14.04",
43
- "forward_port": {
44
- "12345": "54321"
45
- }
46
- }
47
- }
48
- }
49
- """
50
- When I successfully run `berks cookbook sparkle_motion`
51
- Then the resulting "sparkle_motion" Vagrantfile should contain:
52
- | config.omnibus.chef_version = 'latest' |
53
- | config.vm.box = 'bento/ubuntu-14.04' |
54
- | config.vm.network :forwarded_port, guest: 12345, host: 54321 |
55
- | config.vm.network :private_network, type: 'dhcp' |
56
-
57
- Scenario: Using a partial Berkshelf configuration file
58
- Given I have a Berkshelf config file containing:
59
- """
60
- {
61
- "vagrant": {
62
- "vm": {
63
- "forward_port": {
64
- "12345": "54321"
65
- }
66
- }
67
- }
68
- }
69
- """
70
- When I successfully run `berks cookbook sparkle_motion`
71
- Then the resulting "sparkle_motion" Vagrantfile should contain:
72
- | config.vm.network :forwarded_port, guest: 12345, host: 54321 |
73
-
74
- Scenario: Using an invalid Berkshelf configuration file
75
- Given I have a Berkshelf config file containing:
76
- """
77
- {
78
- "vagrant": {
79
- "vm": {
80
- "box": 1
81
- }
82
- }
83
- }
84
- """
85
- When I run `berks cookbook sparkle_motion`
86
- Then the output should contain "Invalid configuration"
87
- And the output should contain "vagrant.vm.box Expected attribute: 'vagrant.vm.box' to be a type of: 'String'"
88
- And the exit status should be "InvalidConfiguration"
89
-
90
- Scenario: Using a Berkshelf configuration file with Chef configuration information
91
- Given I have a Berkshelf config file containing:
92
- """
93
- {
94
- "chef": {
95
- "chef_server_url": "localhost:4000",
96
- "validation_client_name": "my_client-validator",
97
- "validation_key_path": "/a/b/c/my_client-validator.pem"
98
- },
99
- "vagrant": {
100
- "vm": {
101
- "provision": "chef_client"
102
- }
103
- }
104
- }
105
- """
106
- When I successfully run `berks cookbook sparkle_motion`
107
- Then the resulting "sparkle_motion" Vagrantfile should contain:
108
- | config.vm.provision :chef_client |
109
- | chef.chef_server_url = 'localhost:4000' |
110
- | chef.validation_client_name = 'my_client-validator' |
111
- | chef.validation_key_path = '/a/b/c/my_client-validator.pem' |
@@ -1,11 +0,0 @@
1
- Feature: Appending -h or --help to a command
2
- Scenario Outline: Using various help switches
3
- Then the output from `<actual>` should be the same as `<expected>`
4
- Examples:
5
- | actual | expected |
6
- | berks --help | berks help |
7
- | berks -h | berks help |
8
- | berks cookbook --help | berks help cookbook |
9
- | berks cookbook -h | berks help cookbook |
10
- | berks shelf --help | berks shelf help |
11
- | berks shelf -h | berks shelf help |
@@ -1,161 +0,0 @@
1
- Feature: --format json
2
- Background:
3
- * the Berkshelf API server's cache is empty
4
- * the Chef Server is empty
5
- * the cookbook store is empty
6
-
7
- Scenario: JSON output installing a cookbook from the default location
8
- Given I have a Berksfile pointing at the local Berkshelf API with:
9
- """
10
- cookbook 'berkshelf', '1.0.0'
11
- """
12
- And the Chef Server has cookbooks:
13
- | berkshelf | 1.0.0 |
14
- And the Berkshelf API server's cache is up to date
15
- When I successfully run `berks install --format json`
16
- Then the output should contain JSON:
17
- """
18
- {
19
- "cookbooks": [
20
- {
21
- "api_source": "http://127.0.0.1:26210/",
22
- "location_path": "http://localhost:26310/",
23
- "version": "1.0.0",
24
- "name": "berkshelf"
25
- }
26
- ],
27
- "errors": [],
28
- "messages": [
29
- "Resolving cookbook dependencies...",
30
- "Fetching cookbook index from http://127.0.0.1:26210..."
31
- ],
32
- "warnings": []
33
- }
34
- """
35
-
36
- Scenario: JSON output installing a cookbook we already have
37
- Given the cookbook store has the cookbooks:
38
- | berkshelf-cookbook-fixture | 1.0.0 |
39
- And I have a Berksfile pointing at the local Berkshelf API with:
40
- """
41
- cookbook 'berkshelf-cookbook-fixture', '1.0.0'
42
- """
43
- When I successfully run `berks install --format json`
44
- Then the output should contain JSON:
45
- """
46
- {
47
- "cookbooks": [
48
- {
49
- "name": "berkshelf-cookbook-fixture",
50
- "version": "1.0.0"
51
- }
52
- ],
53
- "errors": [],
54
- "messages": [
55
- "Resolving cookbook dependencies...",
56
- "Fetching cookbook index from http://127.0.0.1:26210..."
57
- ],
58
- "warnings": []
59
- }
60
- """
61
-
62
- Scenario: JSON output when running the show command
63
- Given the cookbook store has the cookbooks:
64
- | fake | 1.0.0 |
65
- And I have a Berksfile pointing at the local Berkshelf API with:
66
- """
67
- cookbook 'fake', '1.0.0'
68
- """
69
- And I write to "Berksfile.lock" with:
70
- """
71
- DEPENDENCIES
72
- fake (= 1.0.0)
73
-
74
- GRAPH
75
- fake (1.0.0)
76
- """
77
- When I successfully run `berks show fake --format json`
78
- Then the output should contain JSON:
79
- """
80
- {
81
- "cookbooks": [
82
- {
83
- "name": "fake",
84
- "path": "<%= Berkshelf.cookbook_store.storage_path.join('fake-1.0.0') %>"
85
- }
86
- ],
87
- "errors": [],
88
- "messages": [],
89
- "warnings": []
90
- }
91
- """
92
-
93
- Scenario: JSON output when running the upload command
94
- Given I have a Berksfile pointing at the local Berkshelf API with:
95
- """
96
- cookbook 'example_cookbook', path: '../../spec/fixtures/cookbooks/example_cookbook-0.5.0'
97
- """
98
- And I write to "Berksfile.lock" with:
99
- """
100
- DEPENDENCIES
101
- example_cookbook
102
- path: ../../spec/fixtures/cookbooks/example_cookbook-0.5.0
103
-
104
- GRAPH
105
- example_cookbook (0.5.0)
106
- """
107
- When I successfully run `berks upload --format json`
108
- Then the output should contain JSON:
109
- """
110
- {
111
- "cookbooks": [
112
- {
113
- "name": "example_cookbook",
114
- "version": "0.5.0",
115
- "uploaded_to": "http://localhost:26310/"
116
- }
117
- ],
118
- "errors": [],
119
- "messages": [],
120
- "warnings": []
121
- }
122
- """
123
-
124
- Scenario: JSON output when running the outdated command
125
- Given the cookbook store has the cookbooks:
126
- | seth | 0.1.0 |
127
- And the Chef Server has cookbooks:
128
- | seth | 0.1.0 |
129
- | seth | 0.2.9 |
130
- | seth | 1.0.0 |
131
- And the Berkshelf API server's cache is up to date
132
- And I have a Berksfile pointing at the local Berkshelf API with:
133
- """
134
- cookbook 'seth', '~> 0.1'
135
- """
136
- And I write to "Berksfile.lock" with:
137
- """
138
- DEPENDENCIES
139
- seth (~> 0.1)
140
-
141
- GRAPH
142
- seth (0.1.0)
143
- """
144
- And I successfully run `berks outdated --format json`
145
- Then the output should contain JSON:
146
- """
147
- {
148
- "cookbooks": [
149
- {
150
- "local": "0.1.0",
151
- "remote": {
152
- "http://127.0.0.1:26210/": "0.2.9"
153
- },
154
- "name": "seth"
155
- }
156
- ],
157
- "errors": [],
158
- "messages": [],
159
- "warnings": []
160
- }
161
- """