cheffish 1.4.1 → 1.4.2

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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +201 -201
  3. data/README.md +120 -120
  4. data/Rakefile +23 -23
  5. data/lib/chef/provider/chef_acl.rb +439 -439
  6. data/lib/chef/provider/chef_client.rb +53 -53
  7. data/lib/chef/provider/chef_container.rb +55 -55
  8. data/lib/chef/provider/chef_data_bag.rb +55 -55
  9. data/lib/chef/provider/chef_data_bag_item.rb +278 -278
  10. data/lib/chef/provider/chef_environment.rb +83 -83
  11. data/lib/chef/provider/chef_group.rb +83 -83
  12. data/lib/chef/provider/chef_mirror.rb +169 -169
  13. data/lib/chef/provider/chef_node.rb +87 -87
  14. data/lib/chef/provider/chef_organization.rb +155 -155
  15. data/lib/chef/provider/chef_resolved_cookbooks.rb +46 -46
  16. data/lib/chef/provider/chef_role.rb +84 -84
  17. data/lib/chef/provider/chef_user.rb +59 -59
  18. data/lib/chef/provider/private_key.rb +225 -225
  19. data/lib/chef/provider/public_key.rb +88 -88
  20. data/lib/chef/resource/chef_acl.rb +69 -69
  21. data/lib/chef/resource/chef_client.rb +48 -48
  22. data/lib/chef/resource/chef_container.rb +22 -22
  23. data/lib/chef/resource/chef_data_bag.rb +22 -22
  24. data/lib/chef/resource/chef_data_bag_item.rb +121 -121
  25. data/lib/chef/resource/chef_environment.rb +77 -77
  26. data/lib/chef/resource/chef_group.rb +53 -53
  27. data/lib/chef/resource/chef_mirror.rb +52 -52
  28. data/lib/chef/resource/chef_node.rb +22 -22
  29. data/lib/chef/resource/chef_organization.rb +69 -69
  30. data/lib/chef/resource/chef_resolved_cookbooks.rb +35 -35
  31. data/lib/chef/resource/chef_role.rb +110 -110
  32. data/lib/chef/resource/chef_user.rb +56 -56
  33. data/lib/chef/resource/private_key.rb +48 -48
  34. data/lib/chef/resource/public_key.rb +25 -25
  35. data/lib/cheffish/actor_provider_base.rb +131 -131
  36. data/lib/cheffish/basic_chef_client.rb +184 -184
  37. data/lib/cheffish/chef_provider_base.rb +246 -246
  38. data/lib/cheffish/chef_run.rb +162 -162
  39. data/lib/cheffish/chef_run_data.rb +19 -19
  40. data/lib/cheffish/chef_run_listener.rb +30 -30
  41. data/lib/cheffish/key_formatter.rb +113 -113
  42. data/lib/cheffish/merged_config.rb +94 -94
  43. data/lib/cheffish/recipe_dsl.rb +157 -157
  44. data/lib/cheffish/rspec/chef_run_support.rb +83 -83
  45. data/lib/cheffish/rspec/matchers/be_idempotent.rb +16 -16
  46. data/lib/cheffish/rspec/matchers/emit_no_warnings_or_errors.rb +15 -15
  47. data/lib/cheffish/rspec/matchers/have_updated.rb +37 -37
  48. data/lib/cheffish/rspec/matchers/partially_match.rb +63 -63
  49. data/lib/cheffish/rspec/matchers.rb +4 -4
  50. data/lib/cheffish/rspec/recipe_run_wrapper.rb +78 -59
  51. data/lib/cheffish/rspec/repository_support.rb +108 -108
  52. data/lib/cheffish/rspec.rb +8 -8
  53. data/lib/cheffish/server_api.rb +52 -52
  54. data/lib/cheffish/version.rb +3 -3
  55. data/lib/cheffish/with_pattern.rb +21 -21
  56. data/lib/cheffish.rb +235 -235
  57. data/spec/functional/fingerprint_spec.rb +64 -64
  58. data/spec/functional/merged_config_spec.rb +19 -19
  59. data/spec/functional/server_api_spec.rb +13 -13
  60. data/spec/integration/chef_acl_spec.rb +879 -879
  61. data/spec/integration/chef_client_spec.rb +105 -105
  62. data/spec/integration/chef_container_spec.rb +33 -33
  63. data/spec/integration/chef_group_spec.rb +309 -309
  64. data/spec/integration/chef_mirror_spec.rb +491 -491
  65. data/spec/integration/chef_node_spec.rb +786 -786
  66. data/spec/integration/chef_organization_spec.rb +226 -226
  67. data/spec/integration/chef_role_spec.rb +78 -78
  68. data/spec/integration/chef_user_spec.rb +85 -85
  69. data/spec/integration/private_key_spec.rb +399 -399
  70. data/spec/integration/recipe_dsl_spec.rb +28 -28
  71. data/spec/integration/rspec/converge_spec.rb +183 -183
  72. data/spec/support/key_support.rb +29 -29
  73. data/spec/support/spec_support.rb +15 -15
  74. data/spec/unit/get_private_key_spec.rb +131 -131
  75. data/spec/unit/recipe_run_wrapper_spec.rb +37 -37
  76. metadata +3 -2
@@ -1,85 +1,85 @@
1
- require 'support/spec_support'
2
- require 'cheffish/rspec/chef_run_support'
3
- require 'support/key_support'
4
- require 'chef/resource/chef_user'
5
- require 'chef/provider/chef_user'
6
-
7
- repo_path = Dir.mktmpdir('chef_repo')
8
-
9
- describe Chef::Resource::ChefUser do
10
- extend Cheffish::RSpec::ChefRunSupport
11
-
12
- with_converge do
13
- private_key "#{repo_path}/blah.pem"
14
- end
15
-
16
- when_the_chef_server 'is empty' do
17
- context 'and we run a recipe that creates user "blah"'do
18
- it 'the user gets created' do
19
- expect_recipe {
20
- chef_user 'blah' do
21
- source_key_path "#{repo_path}/blah.pem"
22
- end
23
- }.to have_updated 'chef_user[blah]', :create
24
- user = get('/users/blah')
25
- expect(user['name']).to eq('blah')
26
- key, format = Cheffish::KeyFormatter.decode(user['public_key'])
27
- expect(key).to be_public_key_for("#{repo_path}/blah.pem")
28
- end
29
- end
30
-
31
- context 'and we run a recipe that creates user "blah" with output_key_path' do
32
- with_converge do
33
- chef_user 'blah' do
34
- source_key_path "#{repo_path}/blah.pem"
35
- output_key_path "#{repo_path}/blah.pub"
36
- end
37
- end
38
-
39
- it 'the output public key gets created' do
40
- expect(IO.read("#{repo_path}/blah.pub")).to start_with('ssh-rsa ')
41
- expect("#{repo_path}/blah.pub").to be_public_key_for("#{repo_path}/blah.pem")
42
- end
43
- end
44
- end
45
-
46
- when_the_chef_12_server 'is in multi-org mode' do
47
- context 'and chef_server_url is pointed at the top level' do
48
- context 'and we run a recipe that creates user "blah"'do
49
- it 'the user gets created' do
50
- expect_recipe {
51
- chef_user 'blah' do
52
- source_key_path "#{repo_path}/blah.pem"
53
- end
54
- }.to have_updated 'chef_user[blah]', :create
55
- user = get('/users/blah')
56
- expect(user['name']).to eq('blah')
57
- key, format = Cheffish::KeyFormatter.decode(user['public_key'])
58
- expect(key).to be_public_key_for("#{repo_path}/blah.pem")
59
- end
60
- end
61
- end
62
-
63
- context 'and chef_server_url is pointed at /organizations/foo' do
64
- organization 'foo'
65
-
66
- before :each do
67
- Chef::Config.chef_server_url = URI.join(Chef::Config.chef_server_url, '/organizations/foo').to_s
68
- end
69
-
70
- context 'and we run a recipe that creates user "blah"'do
71
- it 'the user gets created' do
72
- expect_recipe {
73
- chef_user 'blah' do
74
- source_key_path "#{repo_path}/blah.pem"
75
- end
76
- }.to have_updated 'chef_user[blah]', :create
77
- user = get('/users/blah')
78
- expect(user['name']).to eq('blah')
79
- key, format = Cheffish::KeyFormatter.decode(user['public_key'])
80
- expect(key).to be_public_key_for("#{repo_path}/blah.pem")
81
- end
82
- end
83
- end
84
- end
85
- end
1
+ require 'support/spec_support'
2
+ require 'cheffish/rspec/chef_run_support'
3
+ require 'support/key_support'
4
+ require 'chef/resource/chef_user'
5
+ require 'chef/provider/chef_user'
6
+
7
+ repo_path = Dir.mktmpdir('chef_repo')
8
+
9
+ describe Chef::Resource::ChefUser do
10
+ extend Cheffish::RSpec::ChefRunSupport
11
+
12
+ with_converge do
13
+ private_key "#{repo_path}/blah.pem"
14
+ end
15
+
16
+ when_the_chef_server 'is empty' do
17
+ context 'and we run a recipe that creates user "blah"'do
18
+ it 'the user gets created' do
19
+ expect_recipe {
20
+ chef_user 'blah' do
21
+ source_key_path "#{repo_path}/blah.pem"
22
+ end
23
+ }.to have_updated 'chef_user[blah]', :create
24
+ user = get('/users/blah')
25
+ expect(user['name']).to eq('blah')
26
+ key, format = Cheffish::KeyFormatter.decode(user['public_key'])
27
+ expect(key).to be_public_key_for("#{repo_path}/blah.pem")
28
+ end
29
+ end
30
+
31
+ context 'and we run a recipe that creates user "blah" with output_key_path' do
32
+ with_converge do
33
+ chef_user 'blah' do
34
+ source_key_path "#{repo_path}/blah.pem"
35
+ output_key_path "#{repo_path}/blah.pub"
36
+ end
37
+ end
38
+
39
+ it 'the output public key gets created' do
40
+ expect(IO.read("#{repo_path}/blah.pub")).to start_with('ssh-rsa ')
41
+ expect("#{repo_path}/blah.pub").to be_public_key_for("#{repo_path}/blah.pem")
42
+ end
43
+ end
44
+ end
45
+
46
+ when_the_chef_12_server 'is in multi-org mode' do
47
+ context 'and chef_server_url is pointed at the top level' do
48
+ context 'and we run a recipe that creates user "blah"'do
49
+ it 'the user gets created' do
50
+ expect_recipe {
51
+ chef_user 'blah' do
52
+ source_key_path "#{repo_path}/blah.pem"
53
+ end
54
+ }.to have_updated 'chef_user[blah]', :create
55
+ user = get('/users/blah')
56
+ expect(user['name']).to eq('blah')
57
+ key, format = Cheffish::KeyFormatter.decode(user['public_key'])
58
+ expect(key).to be_public_key_for("#{repo_path}/blah.pem")
59
+ end
60
+ end
61
+ end
62
+
63
+ context 'and chef_server_url is pointed at /organizations/foo' do
64
+ organization 'foo'
65
+
66
+ before :each do
67
+ Chef::Config.chef_server_url = URI.join(Chef::Config.chef_server_url, '/organizations/foo').to_s
68
+ end
69
+
70
+ context 'and we run a recipe that creates user "blah"'do
71
+ it 'the user gets created' do
72
+ expect_recipe {
73
+ chef_user 'blah' do
74
+ source_key_path "#{repo_path}/blah.pem"
75
+ end
76
+ }.to have_updated 'chef_user[blah]', :create
77
+ user = get('/users/blah')
78
+ expect(user['name']).to eq('blah')
79
+ key, format = Cheffish::KeyFormatter.decode(user['public_key'])
80
+ expect(key).to be_public_key_for("#{repo_path}/blah.pem")
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end