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.
- checksums.yaml +4 -4
- data/LICENSE +201 -201
- data/README.md +120 -120
- data/Rakefile +23 -23
- data/lib/chef/provider/chef_acl.rb +439 -439
- data/lib/chef/provider/chef_client.rb +53 -53
- data/lib/chef/provider/chef_container.rb +55 -55
- data/lib/chef/provider/chef_data_bag.rb +55 -55
- data/lib/chef/provider/chef_data_bag_item.rb +278 -278
- data/lib/chef/provider/chef_environment.rb +83 -83
- data/lib/chef/provider/chef_group.rb +83 -83
- data/lib/chef/provider/chef_mirror.rb +169 -169
- data/lib/chef/provider/chef_node.rb +87 -87
- data/lib/chef/provider/chef_organization.rb +155 -155
- data/lib/chef/provider/chef_resolved_cookbooks.rb +46 -46
- data/lib/chef/provider/chef_role.rb +84 -84
- data/lib/chef/provider/chef_user.rb +59 -59
- data/lib/chef/provider/private_key.rb +225 -225
- data/lib/chef/provider/public_key.rb +88 -88
- data/lib/chef/resource/chef_acl.rb +69 -69
- data/lib/chef/resource/chef_client.rb +48 -48
- data/lib/chef/resource/chef_container.rb +22 -22
- data/lib/chef/resource/chef_data_bag.rb +22 -22
- data/lib/chef/resource/chef_data_bag_item.rb +121 -121
- data/lib/chef/resource/chef_environment.rb +77 -77
- data/lib/chef/resource/chef_group.rb +53 -53
- data/lib/chef/resource/chef_mirror.rb +52 -52
- data/lib/chef/resource/chef_node.rb +22 -22
- data/lib/chef/resource/chef_organization.rb +69 -69
- data/lib/chef/resource/chef_resolved_cookbooks.rb +35 -35
- data/lib/chef/resource/chef_role.rb +110 -110
- data/lib/chef/resource/chef_user.rb +56 -56
- data/lib/chef/resource/private_key.rb +48 -48
- data/lib/chef/resource/public_key.rb +25 -25
- data/lib/cheffish/actor_provider_base.rb +131 -131
- data/lib/cheffish/basic_chef_client.rb +184 -184
- data/lib/cheffish/chef_provider_base.rb +246 -246
- data/lib/cheffish/chef_run.rb +162 -162
- data/lib/cheffish/chef_run_data.rb +19 -19
- data/lib/cheffish/chef_run_listener.rb +30 -30
- data/lib/cheffish/key_formatter.rb +113 -113
- data/lib/cheffish/merged_config.rb +94 -94
- data/lib/cheffish/recipe_dsl.rb +157 -157
- data/lib/cheffish/rspec/chef_run_support.rb +83 -83
- data/lib/cheffish/rspec/matchers/be_idempotent.rb +16 -16
- data/lib/cheffish/rspec/matchers/emit_no_warnings_or_errors.rb +15 -15
- data/lib/cheffish/rspec/matchers/have_updated.rb +37 -37
- data/lib/cheffish/rspec/matchers/partially_match.rb +63 -63
- data/lib/cheffish/rspec/matchers.rb +4 -4
- data/lib/cheffish/rspec/recipe_run_wrapper.rb +78 -59
- data/lib/cheffish/rspec/repository_support.rb +108 -108
- data/lib/cheffish/rspec.rb +8 -8
- data/lib/cheffish/server_api.rb +52 -52
- data/lib/cheffish/version.rb +3 -3
- data/lib/cheffish/with_pattern.rb +21 -21
- data/lib/cheffish.rb +235 -235
- data/spec/functional/fingerprint_spec.rb +64 -64
- data/spec/functional/merged_config_spec.rb +19 -19
- data/spec/functional/server_api_spec.rb +13 -13
- data/spec/integration/chef_acl_spec.rb +879 -879
- data/spec/integration/chef_client_spec.rb +105 -105
- data/spec/integration/chef_container_spec.rb +33 -33
- data/spec/integration/chef_group_spec.rb +309 -309
- data/spec/integration/chef_mirror_spec.rb +491 -491
- data/spec/integration/chef_node_spec.rb +786 -786
- data/spec/integration/chef_organization_spec.rb +226 -226
- data/spec/integration/chef_role_spec.rb +78 -78
- data/spec/integration/chef_user_spec.rb +85 -85
- data/spec/integration/private_key_spec.rb +399 -399
- data/spec/integration/recipe_dsl_spec.rb +28 -28
- data/spec/integration/rspec/converge_spec.rb +183 -183
- data/spec/support/key_support.rb +29 -29
- data/spec/support/spec_support.rb +15 -15
- data/spec/unit/get_private_key_spec.rb +131 -131
- data/spec/unit/recipe_run_wrapper_spec.rb +37 -37
- 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
|