beaker-puppet 1.29.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +9 -0
- data/.github/workflows/release.yml +3 -3
- data/.github/workflows/test.yml +28 -7
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +842 -0
- data/CHANGELOG.md +39 -0
- data/Gemfile +5 -20
- data/Rakefile +64 -169
- data/acceptance/config/acceptance-options.rb +3 -3
- data/acceptance/config/gem/acceptance-options.rb +8 -8
- data/acceptance/config/git/acceptance-options.rb +8 -8
- data/acceptance/config/pkg/acceptance-options.rb +7 -7
- data/acceptance/pre_suite/gem/install.rb +6 -6
- data/acceptance/pre_suite/git/install.rb +22 -22
- data/acceptance/pre_suite/pkg/install.rb +3 -3
- data/acceptance/tests/backwards_compatible.rb +6 -7
- data/acceptance/tests/clone_git_repo_on_test.rb +12 -13
- data/acceptance/tests/create_tmpdir_on_test.rb +13 -9
- data/acceptance/tests/install_smoke_test.rb +5 -4
- data/acceptance/tests/stub_host.rb +11 -10
- data/acceptance/tests/web_helpers_test.rb +11 -10
- data/beaker-puppet.gemspec +16 -23
- data/bin/beaker-puppet +2 -4
- data/lib/beaker-puppet/helpers/facter_helpers.rb +9 -7
- data/lib/beaker-puppet/helpers/host_helpers.rb +10 -7
- data/lib/beaker-puppet/helpers/puppet_helpers.rb +151 -160
- data/lib/beaker-puppet/helpers/rake_helpers.rb +1 -1
- data/lib/beaker-puppet/helpers/tk_helpers.rb +22 -28
- data/lib/beaker-puppet/install_utils/aio_defaults.rb +39 -43
- data/lib/beaker-puppet/install_utils/ezbake_utils.rb +34 -42
- data/lib/beaker-puppet/install_utils/foss_defaults.rb +134 -138
- data/lib/beaker-puppet/install_utils/foss_utils.rb +294 -321
- data/lib/beaker-puppet/install_utils/module_utils.rb +58 -70
- data/lib/beaker-puppet/install_utils/puppet5.rb +30 -35
- data/lib/beaker-puppet/install_utils/puppet_utils.rb +58 -68
- data/lib/beaker-puppet/install_utils/windows_utils.rb +34 -36
- data/lib/beaker-puppet/version.rb +1 -1
- data/lib/beaker-puppet/wrappers.rb +13 -14
- data/lib/beaker-puppet.rb +4 -5
- data/setup/aio/010_Install_Puppet_Agent.rb +5 -6
- data/setup/common/000-delete-puppet-when-none.rb +2 -4
- data/setup/common/003_solaris_cert_fix.rb +74 -70
- data/setup/common/005_redhat_subscription_fix.rb +3 -2
- data/setup/common/011_Install_Puppet_Server.rb +7 -9
- data/setup/common/012_Finalize_Installs.rb +5 -5
- data/setup/common/025_StopFirewall.rb +1 -1
- data/setup/common/030_StopSssd.rb +2 -2
- data/setup/common/040_ValidateSignCert.rb +10 -12
- data/setup/common/045_EnsureMasterStarted.rb +2 -2
- data/setup/gem/010_GemInstall.rb +5 -4
- data/setup/git/000_EnvSetup.rb +48 -48
- data/setup/git/010_TestSetup.rb +13 -12
- data/setup/git/020_PuppetUserAndGroup.rb +3 -2
- data/setup/git/060_InstallModules.rb +14 -14
- data/setup/git/070_InstallCACerts.rb +82 -82
- data/spec/beaker-puppet/helpers/facter_helpers_spec.rb +22 -24
- data/spec/beaker-puppet/helpers/host_helpers_spec.rb +10 -6
- data/spec/beaker-puppet/helpers/puppet_helpers_spec.rb +506 -517
- data/spec/beaker-puppet/helpers/tk_helpers_spec.rb +20 -24
- data/spec/beaker-puppet/install_utils/ezbake_utils_spec.rb +86 -90
- data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +636 -599
- data/spec/beaker-puppet/install_utils/module_utils_spec.rb +125 -116
- data/spec/beaker-puppet/install_utils/puppet5_spec.rb +159 -165
- data/spec/beaker-puppet/install_utils/puppet_utils_spec.rb +92 -77
- data/spec/beaker-puppet/install_utils/windows_utils_spec.rb +101 -89
- data/spec/beaker-puppet/wrappers_spec.rb +10 -10
- data/spec/helpers.rb +85 -91
- data/tasks/ci.rake +171 -179
- metadata +33 -62
- data/setup/common/020_InstallCumulusModules.rb +0 -13
- data/setup/common/021_InstallAristaModuleMasters.rb +0 -12
- data/setup/common/022_InstallAristaModuleAgents.rb +0 -13
data/spec/helpers.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module TestFileHelpers
|
2
|
-
def create_files
|
2
|
+
def create_files(file_array)
|
3
3
|
file_array.each do |f|
|
4
4
|
FileUtils.mkdir_p File.dirname(f)
|
5
5
|
FileUtils.touch f
|
@@ -7,137 +7,131 @@ module TestFileHelpers
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def fog_file_contents
|
10
|
-
{ :
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
10
|
+
{ default: { aws_access_key_id: 'IMANACCESSKEY',
|
11
|
+
aws_secret_access_key: 'supersekritkey',
|
12
|
+
aix_hypervisor_server: 'aix_hypervisor.labs.net',
|
13
|
+
aix_hypervisor_username: 'aixer',
|
14
|
+
aix_hypervisor_keyfile: '/Users/user/.ssh/id_rsa-acceptance',
|
15
|
+
solaris_hypervisor_server: 'solaris_hypervisor.labs.net',
|
16
|
+
solaris_hypervisor_username: 'harness',
|
17
|
+
solaris_hypervisor_keyfile: '/Users/user/.ssh/id_rsa-old.private',
|
18
|
+
solaris_hypervisor_vmpath: 'rpoooool/zs',
|
19
|
+
solaris_hypervisor_snappaths: ['rpoooool/USER/z0'],
|
20
|
+
vsphere_server: 'vsphere.labs.net',
|
21
|
+
vsphere_username: 'vsphere@labs.com',
|
22
|
+
vsphere_password: 'supersekritpassword', } }
|
23
23
|
end
|
24
|
-
|
25
24
|
end
|
26
25
|
|
27
26
|
module HostHelpers
|
28
|
-
HOST_DEFAULTS = { :
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
38
|
-
:
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
HOST_PRIVATE_IP = "private.ip.for.%s"
|
27
|
+
HOST_DEFAULTS = { platform: 'unix',
|
28
|
+
roles: ['agent'],
|
29
|
+
snapshot: 'snap',
|
30
|
+
ip: 'default.ip.address',
|
31
|
+
private_ip: 'private.ip.address',
|
32
|
+
dns_name: 'default.box.tld',
|
33
|
+
box: 'default_box_name',
|
34
|
+
box_url: 'http://default.box.url',
|
35
|
+
image: 'default_image',
|
36
|
+
flavor: 'm1.large',
|
37
|
+
user_data: '#cloud-config\nmanage_etc_hosts: true\nfinal_message: "The host is finally up!"', }
|
38
|
+
|
39
|
+
HOST_NAME = 'vm%d'
|
40
|
+
HOST_SNAPSHOT = 'snapshot%d'
|
41
|
+
HOST_IP = 'ip.address.for.%s'
|
42
|
+
HOST_BOX = 'vm2%s_of_my_box'
|
43
|
+
HOST_BOX_URL = 'http://address.for.my.box.%s'
|
44
|
+
HOST_DNS_NAME = '%s.box.tld'
|
45
|
+
HOST_TEMPLATE = '%s_has_a_template'
|
46
|
+
HOST_PRIVATE_IP = 'private.ip.for.%s'
|
49
47
|
|
50
48
|
def logger
|
51
|
-
double(
|
49
|
+
double('logger').as_null_object
|
52
50
|
end
|
53
51
|
|
54
52
|
def make_opts
|
55
53
|
opts = Beaker::Options::Presets.new
|
56
|
-
opts.presets.merge(
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
54
|
+
opts.presets.merge(opts.env_vars).merge({ logger: logger,
|
55
|
+
host_config: 'sample.config',
|
56
|
+
type: nil,
|
57
|
+
pooling_api: 'http://vcloud.delivery.puppetlabs.net/',
|
58
|
+
datastore: 'instance0',
|
59
|
+
folder: 'Delivery/Quality Assurance/Staging/Dynamic',
|
60
|
+
resourcepool: 'delivery/Quality Assurance/Staging/Dynamic',
|
61
|
+
gce_project: 'beaker-compute',
|
62
|
+
gce_keyfile: '/path/to/keyfile.p12',
|
63
|
+
gce_password: 'notasecret',
|
64
|
+
gce_email: '12345678910@developer.gserviceaccount.com',
|
65
|
+
openstack_api_key: 'P1as$w0rd',
|
66
|
+
openstack_username: 'user',
|
67
|
+
openstack_auth_url: 'http://openstack_hypervisor.labs.net:5000/v2.0/tokens',
|
68
|
+
openstack_tenant: 'testing',
|
69
|
+
openstack_network: 'testing',
|
70
|
+
openstack_keyname: 'nopass',
|
71
|
+
floating_ip_pool: 'my_pool',
|
72
|
+
security_group: %w[my_sg default], })
|
75
73
|
end
|
76
74
|
|
77
|
-
def generate_result
|
78
|
-
result = double(
|
75
|
+
def generate_result(name, opts)
|
76
|
+
result = double('result')
|
79
77
|
stdout = opts.has_key?(:stdout) ? opts[:stdout] : name
|
80
78
|
stderr = opts.has_key?(:stderr) ? opts[:stderr] : name
|
81
|
-
exit_code = opts.has_key?(:exit_code) ? opts[:exit_code] :
|
79
|
+
exit_code = opts.has_key?(:exit_code) ? opts[:exit_code] : 0
|
82
80
|
exit_code = [exit_code].flatten
|
83
|
-
allow(
|
84
|
-
allow(
|
85
|
-
allow(
|
81
|
+
allow(result).to receive(:stdout).and_return(stdout)
|
82
|
+
allow(result).to receive(:stderr).and_return(stderr)
|
83
|
+
allow(result).to receive(:exit_code).and_return(*exit_code)
|
86
84
|
result
|
87
85
|
end
|
88
86
|
|
89
|
-
def make_host_opts
|
90
|
-
make_opts.merge(
|
87
|
+
def make_host_opts(name, opts)
|
88
|
+
make_opts.merge({ 'HOSTS' => { name => opts } }).merge(opts)
|
91
89
|
end
|
92
90
|
|
93
|
-
def make_host
|
91
|
+
def make_host(name, host_hash)
|
94
92
|
host_hash = Beaker::Options::OptionsHash.new.merge(HOST_DEFAULTS.merge(host_hash))
|
95
93
|
|
96
|
-
host = Beaker::Host.create(
|
94
|
+
host = Beaker::Host.create(name, host_hash, make_opts)
|
97
95
|
|
98
|
-
allow(host).to receive(
|
99
|
-
allow(host).to receive(
|
96
|
+
allow(host).to receive(:exec).and_return(generate_result(name, host_hash))
|
97
|
+
allow(host).to receive(:close)
|
100
98
|
host
|
101
99
|
end
|
102
100
|
|
103
|
-
def make_hosts
|
101
|
+
def make_hosts(preset_opts = {}, amt = 3)
|
104
102
|
hosts = []
|
105
103
|
(1..amt).each do |num|
|
106
104
|
name = HOST_NAME % num
|
107
|
-
opts = { :
|
108
|
-
:
|
109
|
-
:
|
110
|
-
:
|
111
|
-
:
|
112
|
-
:
|
113
|
-
:
|
105
|
+
opts = { snapshot: HOST_SNAPSHOT % num,
|
106
|
+
ip: HOST_IP % name,
|
107
|
+
private_ip: HOST_PRIVATE_IP % name,
|
108
|
+
dns_name: HOST_DNS_NAME % name,
|
109
|
+
template: HOST_TEMPLATE % name,
|
110
|
+
box: HOST_BOX % name,
|
111
|
+
box_url: HOST_BOX_URL % name, }.merge(preset_opts)
|
114
112
|
hosts << make_host(name, opts)
|
115
113
|
end
|
116
114
|
hosts
|
117
115
|
end
|
118
116
|
|
119
|
-
def make_instance
|
117
|
+
def make_instance(instance_data = {})
|
120
118
|
OpenStruct.new instance_data
|
121
119
|
end
|
122
|
-
|
123
120
|
end
|
124
121
|
|
125
122
|
module PlatformHelpers
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
'cumulus',
|
130
|
-
'huaweios']
|
131
|
-
|
123
|
+
DEBIANPLATFORMS = %w[debian
|
124
|
+
ubuntu
|
125
|
+
huaweios]
|
132
126
|
|
133
127
|
FEDORASYSTEMD = (14..29).to_a.collect! { |i| "fedora-#{i}" }
|
134
128
|
|
135
|
-
SYSTEMDPLATFORMS = [
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
129
|
+
SYSTEMDPLATFORMS = %w[el-7
|
130
|
+
centos-7
|
131
|
+
redhat-7
|
132
|
+
oracle-7
|
133
|
+
scientific-7
|
134
|
+
eos-7].concat(FEDORASYSTEMD)
|
141
135
|
|
142
136
|
FEDORASYSTEMV = (1..13).to_a.collect! { |i| "fedora-#{i}" }
|
143
137
|
|
@@ -147,5 +141,5 @@ module PlatformHelpers
|
|
147
141
|
'redhat',
|
148
142
|
'oracle',
|
149
143
|
'scientific',
|
150
|
-
'eos'].concat(FEDORASYSTEMV)
|
144
|
+
'eos',].concat(FEDORASYSTEMV)
|
151
145
|
end
|