cheffish 1.4.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
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