kitchen-nodes 0.4.1 → 0.5.0
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/.gitignore +2 -0
- data/.kitchen.yml +41 -0
- data/.rubocop.yml +4 -0
- data/Berksfile +7 -0
- data/Gemfile +4 -0
- data/kitchen-nodes.gemspec +1 -1
- data/lib/kitchen/provisioner/{ip_finder.rb → finder.rb} +2 -2
- data/lib/kitchen/provisioner/{ip_finder → finder}/ssh.rb +7 -1
- data/lib/kitchen/provisioner/{ip_finder → finder}/winrm.rb +16 -1
- data/lib/kitchen/provisioner/nodes.rb +22 -5
- data/lib/kitchen/provisioner/nodes_version.rb +1 -1
- data/spec/unit/nodes_spec.rb +25 -3
- data/test/integration/cookbooks/node-tests/libraries/helper.rb +18 -0
- data/test/integration/cookbooks/node-tests/metadata.rb +4 -0
- data/test/integration/cookbooks/node-tests/recipes/node1.rb +0 -0
- data/test/integration/cookbooks/node-tests/recipes/node2.rb +9 -0
- data/test/integration/node1/serverspec/default_spec.rb +0 -0
- data/test/integration/node2/serverspec/Gemfile +3 -0
- data/test/integration/node2/serverspec/default_spec.rb +64 -0
- data/test/integration/nodes/node1-ubuntu-1204.json +22 -0
- data/test/integration/nodes/node1-windows-2012R2.json +21 -0
- data/test/integration/nodes/node2-ubuntu-1204.json +22 -0
- data/test/integration/nodes/node2-windows-2012R2.json +21 -0
- metadata +32 -9
- data/CHANGELOG.md +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b8930d518f65a1dee4809dbb78e4ae736fe4541
|
4
|
+
data.tar.gz: aa20c8911a41adc5825ff1652c23bcf8f60181ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49add0cf3e506a17bbcee92212ac72b38629141c25e3d3c23333540736b255f49c8a000304dd27aa07b5195926e1b2ead7926fc847225470fd407109316a78f2
|
7
|
+
data.tar.gz: ef5e99b812d19f73495d89f2d8d208a1aab8159a938c19a285fef8e2527723aa74c0cc31140ed68b3c4a881281d49bb1f150bd5714221bcca870a52c904a7455
|
data/.gitignore
CHANGED
data/.kitchen.yml
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
---
|
2
|
+
driver:
|
3
|
+
name: vagrant
|
4
|
+
network:
|
5
|
+
- ["private_network", { type: "dhcp" }]
|
6
|
+
|
7
|
+
provisioner:
|
8
|
+
name: nodes
|
9
|
+
|
10
|
+
platforms:
|
11
|
+
- name: ubuntu-12.04
|
12
|
+
run_list:
|
13
|
+
- recipe[apt]
|
14
|
+
driver_config:
|
15
|
+
box: hashicorp/precise64
|
16
|
+
|
17
|
+
- name: windows-2012R2
|
18
|
+
driver_config:
|
19
|
+
gui: true
|
20
|
+
box: mwrock/Windows2012R2
|
21
|
+
|
22
|
+
suites:
|
23
|
+
- name: node1
|
24
|
+
run_list:
|
25
|
+
- recipe[hurry-up-and-test::set_non_nat_vbox_ip]
|
26
|
+
- recipe[node-tests::node1]
|
27
|
+
attributes:
|
28
|
+
consul:
|
29
|
+
config:
|
30
|
+
bootstrap_expect: 2
|
31
|
+
server: true
|
32
|
+
|
33
|
+
- name: node2
|
34
|
+
run_list:
|
35
|
+
- recipe[hurry-up-and-test::set_non_nat_vbox_ip]
|
36
|
+
- recipe[node-tests::node2]
|
37
|
+
attributes:
|
38
|
+
consul:
|
39
|
+
config:
|
40
|
+
bootstrap_expect: 2
|
41
|
+
server: true
|
data/.rubocop.yml
CHANGED
data/Berksfile
ADDED
data/Gemfile
CHANGED
data/kitchen-nodes.gemspec
CHANGED
@@ -26,5 +26,5 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency 'fakefs', '~> 0.4'
|
27
27
|
spec.add_development_dependency 'rake'
|
28
28
|
spec.add_development_dependency 'rspec', '~> 3.2'
|
29
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
29
|
+
spec.add_development_dependency 'rubocop', '~> 0.34'
|
30
30
|
end
|
@@ -3,10 +3,10 @@ module Kitchen
|
|
3
3
|
# Locates active IPs that are not localhost
|
4
4
|
# there are separate implementations for
|
5
5
|
# different kitchen transports
|
6
|
-
module
|
6
|
+
module Finder
|
7
7
|
def self.for_transport(transport, state)
|
8
8
|
transport_string = transport.class.name.split('::').last
|
9
|
-
require("kitchen/provisioner/
|
9
|
+
require("kitchen/provisioner/finder/#{transport_string.downcase}")
|
10
10
|
|
11
11
|
connection = transport.connection(state)
|
12
12
|
klass = const_get(transport_string)
|
@@ -48,7 +48,7 @@ module Kitchen
|
|
48
48
|
end
|
49
49
|
|
50
50
|
module Provisioner
|
51
|
-
module
|
51
|
+
module Finder
|
52
52
|
# SSH implementation for returning active non-localhost IPs
|
53
53
|
class Ssh
|
54
54
|
IP4REGEX = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/
|
@@ -70,6 +70,12 @@ module Kitchen
|
|
70
70
|
ips
|
71
71
|
end
|
72
72
|
|
73
|
+
def find_fqdn
|
74
|
+
@connection.node_execute('hostname -f').chomp
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
|
73
79
|
def run_ifconfig
|
74
80
|
response = @connection.node_execute('/sbin/ifconfig -a')
|
75
81
|
ips = []
|
@@ -12,7 +12,7 @@ module Kitchen
|
|
12
12
|
end
|
13
13
|
|
14
14
|
module Provisioner
|
15
|
-
module
|
15
|
+
module Finder
|
16
16
|
# WinRM implementation for returning active non-localhost IPs
|
17
17
|
class Winrm
|
18
18
|
def initialize(connection)
|
@@ -29,6 +29,21 @@ module Kitchen
|
|
29
29
|
end
|
30
30
|
data
|
31
31
|
end
|
32
|
+
|
33
|
+
def find_fqdn
|
34
|
+
out = @connection.node_execute <<-EOS
|
35
|
+
[System.Net.Dns]::GetHostByName($env:computername) |
|
36
|
+
FL HostName |
|
37
|
+
Out-String |
|
38
|
+
% { \"{0}\" -f $_.Split(':')[1].Trim() }
|
39
|
+
EOS
|
40
|
+
data = ''
|
41
|
+
out[:data].each do |out_data|
|
42
|
+
stdout = out_data[:stdout]
|
43
|
+
data << stdout.chomp unless stdout.nil?
|
44
|
+
end
|
45
|
+
data
|
46
|
+
end
|
32
47
|
end
|
33
48
|
end
|
34
49
|
end
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
require 'kitchen'
|
20
20
|
require 'kitchen/provisioner/chef_zero'
|
21
|
-
require 'kitchen/provisioner/
|
21
|
+
require 'kitchen/provisioner/finder'
|
22
22
|
require 'net/ping'
|
23
23
|
|
24
24
|
module Kitchen
|
@@ -41,11 +41,15 @@ module Kitchen
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
45
|
-
|
44
|
+
def state_file
|
45
|
+
@state_file ||= Kitchen::StateFile.new(
|
46
46
|
config[:kitchen_root],
|
47
47
|
instance.name
|
48
48
|
).read
|
49
|
+
end
|
50
|
+
|
51
|
+
def ipaddress
|
52
|
+
state = state_file
|
49
53
|
|
50
54
|
if %w(127.0.0.1 localhost).include?(state[:hostname])
|
51
55
|
return get_reachable_guest_address(state)
|
@@ -53,6 +57,18 @@ module Kitchen
|
|
53
57
|
state[:hostname]
|
54
58
|
end
|
55
59
|
|
60
|
+
def fqdn
|
61
|
+
state = state_file
|
62
|
+
begin
|
63
|
+
[:username, :password].each do |prop|
|
64
|
+
state[prop] = instance.driver[prop] if instance.driver[prop]
|
65
|
+
end
|
66
|
+
Finder.for_transport(instance.transport, state).find_fqdn
|
67
|
+
rescue
|
68
|
+
nil
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
56
72
|
def chef_environment
|
57
73
|
env = '_default'
|
58
74
|
if config[:client_rb] && config[:client_rb][:environment]
|
@@ -67,7 +83,8 @@ module Kitchen
|
|
67
83
|
chef_environment: chef_environment,
|
68
84
|
automatic: {
|
69
85
|
ipaddress: ipaddress,
|
70
|
-
platform: instance.platform.name.split('-')[0].downcase
|
86
|
+
platform: instance.platform.name.split('-')[0].downcase,
|
87
|
+
fqdn: fqdn
|
71
88
|
},
|
72
89
|
normal: config[:attributes],
|
73
90
|
run_list: config[:run_list]
|
@@ -94,7 +111,7 @@ module Kitchen
|
|
94
111
|
[:username, :password].each do |prop|
|
95
112
|
state[prop] = instance.driver[prop] if instance.driver[prop]
|
96
113
|
end
|
97
|
-
ips =
|
114
|
+
ips = Finder.for_transport(transport, state).find_ips
|
98
115
|
fail 'Unable to retrieve IPs' if ips.empty?
|
99
116
|
ips
|
100
117
|
end
|
data/spec/unit/nodes_spec.rb
CHANGED
@@ -27,7 +27,7 @@ describe Kitchen::Provisioner::Nodes do
|
|
27
27
|
driver: Kitchen::Driver::Dummy.new
|
28
28
|
)
|
29
29
|
end
|
30
|
-
let(:transport) { Kitchen::Transport::
|
30
|
+
let(:transport) { Kitchen::Transport::Ssh.new }
|
31
31
|
let(:platform) { double('platform', os_type: nil, name: 'ubuntu') }
|
32
32
|
let(:suite) { double('suite', name: 'suite') }
|
33
33
|
let(:state) { { hostname: '192.168.1.10' } }
|
@@ -38,6 +38,11 @@ describe Kitchen::Provisioner::Nodes do
|
|
38
38
|
FileUtils.mkdir_p(config[:test_base_path])
|
39
39
|
allow_any_instance_of(Kitchen::StateFile)
|
40
40
|
.to receive(:read).and_return(state)
|
41
|
+
allow(transport).to receive(:connection)
|
42
|
+
.and_return(Kitchen::Transport::Base::Connection.new)
|
43
|
+
allow_any_instance_of(Kitchen::Transport::Base::Connection)
|
44
|
+
.to receive(:node_execute).with('hostname -f')
|
45
|
+
.and_return('fakehostname')
|
41
46
|
end
|
42
47
|
after do
|
43
48
|
FakeFS.deactivate!
|
@@ -82,6 +87,25 @@ describe Kitchen::Provisioner::Nodes do
|
|
82
87
|
expect(node[:automatic][:ipaddress]).to eq state[:hostname]
|
83
88
|
end
|
84
89
|
|
90
|
+
it 'sets the fqdn' do
|
91
|
+
subject.create_node
|
92
|
+
|
93
|
+
expect(node[:automatic][:fqdn]).to eq 'fakehostname'
|
94
|
+
end
|
95
|
+
|
96
|
+
context 'cannot obtain fqdn' do
|
97
|
+
before do
|
98
|
+
allow_any_instance_of(Kitchen::Transport::Base::Connection)
|
99
|
+
.to receive(:node_execute).with('hostname -f')
|
100
|
+
.and_raise(Kitchen::Transport::TransportFailed.new(''))
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'sets the fqdn to nil' do
|
104
|
+
subject.create_node
|
105
|
+
expect(node[:automatic][:fqdn]).to be_nil
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
85
109
|
context 'no environment explicitly set' do
|
86
110
|
before { config.delete(:client_rb) }
|
87
111
|
|
@@ -99,8 +123,6 @@ describe Kitchen::Provisioner::Nodes do
|
|
99
123
|
before do
|
100
124
|
allow_any_instance_of(Net::Ping::External).to receive(:ping)
|
101
125
|
.and_return(true)
|
102
|
-
allow(transport).to receive(:connection)
|
103
|
-
.and_return(Kitchen::Transport::Base::Connection.new)
|
104
126
|
end
|
105
127
|
|
106
128
|
context 'cannot find an ip' do
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'timeout'
|
2
|
+
|
3
|
+
def search_for_nodes(query, timeout = 120)
|
4
|
+
nodes = []
|
5
|
+
Timeout.timeout(timeout) do
|
6
|
+
nodes = search(:node, query)
|
7
|
+
until nodes.count > 0 && nodes[0].key?('ipaddress')
|
8
|
+
sleep 5
|
9
|
+
nodes = search(:node, query)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
if nodes.count == 0 || !nodes[0].key?('ipaddress')
|
14
|
+
fail "Unable to find any nodes meeting the search criteria '#{query}'!"
|
15
|
+
end
|
16
|
+
|
17
|
+
nodes
|
18
|
+
end
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
first_node = search_for_nodes(
|
2
|
+
"run_list:*node1* AND platform:#{node['platform']}")
|
3
|
+
|
4
|
+
ruby_block 'Save first attributes' do
|
5
|
+
block do
|
6
|
+
parent = File.join(ENV['TEMP'] || '/tmp', 'kitchen')
|
7
|
+
IO.write(File.join(parent, 'other_node.json'), first_node[0].to_json)
|
8
|
+
end
|
9
|
+
end
|
File without changes
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'serverspec'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
if RUBY_PLATFORM =~ /mingw/
|
5
|
+
set :backend, :cmd
|
6
|
+
set :os, family: 'windows'
|
7
|
+
else
|
8
|
+
set :backend, :exec
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'other node' do
|
12
|
+
let(:node) do
|
13
|
+
JSON.parse(
|
14
|
+
IO.read(File.join(ENV['TEMP'] || '/tmp', 'kitchen/other_node.json'))
|
15
|
+
)
|
16
|
+
end
|
17
|
+
let(:ip) { node['automatic']['ipaddress'] }
|
18
|
+
let(:fqdn) { node['automatic']['fqdn'] }
|
19
|
+
let(:connection) do
|
20
|
+
if RUBY_PLATFORM =~ /mingw/
|
21
|
+
require 'winrm'
|
22
|
+
::WinRM::WinRMWebService.new(
|
23
|
+
"http://#{ip}:5985/wsman",
|
24
|
+
:plaintext,
|
25
|
+
user: 'vagrant',
|
26
|
+
pass: 'vagrant',
|
27
|
+
basic_auth_only: true
|
28
|
+
)
|
29
|
+
else
|
30
|
+
Net::SSH.start(
|
31
|
+
ip,
|
32
|
+
'vagrant',
|
33
|
+
password: 'vagrant',
|
34
|
+
paranoid: false
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'has an non localhost ip' do
|
40
|
+
expect(ip).not_to eq('127.0.0.1')
|
41
|
+
end
|
42
|
+
|
43
|
+
describe command('hostname') do
|
44
|
+
its(:stdout) { should_not match(/#{Regexp.quote(fqdn)}/) }
|
45
|
+
end
|
46
|
+
|
47
|
+
if RUBY_PLATFORM =~ /mingw/
|
48
|
+
it 'has a computername matching node fqdn' do
|
49
|
+
expect(connection.run_cmd('hostname').stdout.chomp).to eq(fqdn)
|
50
|
+
end
|
51
|
+
else
|
52
|
+
it 'has a computername matching node fqdn' do
|
53
|
+
connection.open_channel do |channel|
|
54
|
+
channel.request_pty
|
55
|
+
channel.exec('hostname') do |_ch, _success|
|
56
|
+
channel.on_data do |_ch, data|
|
57
|
+
expect(data.chomp).to eq(fqdn)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
connection.loop
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"id": "node1-ubuntu-1204",
|
3
|
+
"chef_environment": "_default",
|
4
|
+
"automatic": {
|
5
|
+
"ipaddress": "192.168.1.147",
|
6
|
+
"platform": "ubuntu",
|
7
|
+
"fqdn": "node1-ubuntu-1204"
|
8
|
+
},
|
9
|
+
"normal": {
|
10
|
+
"consul": {
|
11
|
+
"config": {
|
12
|
+
"bootstrap_expect": 2,
|
13
|
+
"server": true
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
"run_list": [
|
18
|
+
"recipe[apt]",
|
19
|
+
"recipe[hurry-up-and-test::set_non_nat_vbox_ip]",
|
20
|
+
"recipe[node-tests::node1]"
|
21
|
+
]
|
22
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"id": "node1-windows-2012R2",
|
3
|
+
"chef_environment": "_default",
|
4
|
+
"automatic": {
|
5
|
+
"ipaddress": "192.168.1.149",
|
6
|
+
"platform": "windows",
|
7
|
+
"fqdn": "WIN-HKCPKCREPB8"
|
8
|
+
},
|
9
|
+
"normal": {
|
10
|
+
"consul": {
|
11
|
+
"config": {
|
12
|
+
"bootstrap_expect": 2,
|
13
|
+
"server": true
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
"run_list": [
|
18
|
+
"recipe[hurry-up-and-test::set_non_nat_vbox_ip]",
|
19
|
+
"recipe[node-tests::node1]"
|
20
|
+
]
|
21
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"id": "node2-ubuntu-1204",
|
3
|
+
"chef_environment": "_default",
|
4
|
+
"automatic": {
|
5
|
+
"ipaddress": "192.168.1.148",
|
6
|
+
"platform": "ubuntu",
|
7
|
+
"fqdn": "node2-ubuntu-1204"
|
8
|
+
},
|
9
|
+
"normal": {
|
10
|
+
"consul": {
|
11
|
+
"config": {
|
12
|
+
"bootstrap_expect": 2,
|
13
|
+
"server": true
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
"run_list": [
|
18
|
+
"recipe[apt]",
|
19
|
+
"recipe[hurry-up-and-test::set_non_nat_vbox_ip]",
|
20
|
+
"recipe[node-tests::node2]"
|
21
|
+
]
|
22
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"id": "node2-windows-2012R2",
|
3
|
+
"chef_environment": "_default",
|
4
|
+
"automatic": {
|
5
|
+
"ipaddress": "192.168.1.150",
|
6
|
+
"platform": "windows",
|
7
|
+
"fqdn": "WIN-70EEPS83GN7"
|
8
|
+
},
|
9
|
+
"normal": {
|
10
|
+
"consul": {
|
11
|
+
"config": {
|
12
|
+
"bootstrap_expect": 2,
|
13
|
+
"server": true
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
"run_list": [
|
18
|
+
"recipe[hurry-up-and-test::set_non_nat_vbox_ip]",
|
19
|
+
"recipe[node-tests::node2]"
|
20
|
+
]
|
21
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-nodes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Wrock
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ping
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0.
|
117
|
+
version: '0.34'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '0.
|
124
|
+
version: '0.34'
|
125
125
|
description: A Test Kitchen Provisioner for Chef Nodes
|
126
126
|
email:
|
127
127
|
- matt@mattwrock.com
|
@@ -130,22 +130,34 @@ extensions: []
|
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- ".gitignore"
|
133
|
+
- ".kitchen.yml"
|
133
134
|
- ".rubocop.yml"
|
134
135
|
- ".travis.yml"
|
135
|
-
-
|
136
|
+
- Berksfile
|
136
137
|
- Gemfile
|
137
138
|
- LICENSE
|
138
139
|
- README.md
|
139
140
|
- Rakefile
|
140
141
|
- kitchen-nodes.gemspec
|
141
|
-
- lib/kitchen/provisioner/
|
142
|
-
- lib/kitchen/provisioner/
|
143
|
-
- lib/kitchen/provisioner/
|
142
|
+
- lib/kitchen/provisioner/finder.rb
|
143
|
+
- lib/kitchen/provisioner/finder/ssh.rb
|
144
|
+
- lib/kitchen/provisioner/finder/winrm.rb
|
144
145
|
- lib/kitchen/provisioner/nodes.rb
|
145
146
|
- lib/kitchen/provisioner/nodes_version.rb
|
146
147
|
- spec/unit/nodes_spec.rb
|
147
148
|
- spec/unit/stubs/ifconfig.txt
|
148
149
|
- spec/unit/stubs/ip.txt
|
150
|
+
- test/integration/cookbooks/node-tests/libraries/helper.rb
|
151
|
+
- test/integration/cookbooks/node-tests/metadata.rb
|
152
|
+
- test/integration/cookbooks/node-tests/recipes/node1.rb
|
153
|
+
- test/integration/cookbooks/node-tests/recipes/node2.rb
|
154
|
+
- test/integration/node1/serverspec/default_spec.rb
|
155
|
+
- test/integration/node2/serverspec/Gemfile
|
156
|
+
- test/integration/node2/serverspec/default_spec.rb
|
157
|
+
- test/integration/nodes/node1-ubuntu-1204.json
|
158
|
+
- test/integration/nodes/node1-windows-2012R2.json
|
159
|
+
- test/integration/nodes/node2-ubuntu-1204.json
|
160
|
+
- test/integration/nodes/node2-windows-2012R2.json
|
149
161
|
homepage: ''
|
150
162
|
licenses:
|
151
163
|
- Apache 2.0
|
@@ -166,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
178
|
version: '0'
|
167
179
|
requirements: []
|
168
180
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.4.
|
181
|
+
rubygems_version: 2.4.8
|
170
182
|
signing_key:
|
171
183
|
specification_version: 4
|
172
184
|
summary: A Test Kitchen Provisioner for Chef Nodes
|
@@ -174,4 +186,15 @@ test_files:
|
|
174
186
|
- spec/unit/nodes_spec.rb
|
175
187
|
- spec/unit/stubs/ifconfig.txt
|
176
188
|
- spec/unit/stubs/ip.txt
|
189
|
+
- test/integration/cookbooks/node-tests/libraries/helper.rb
|
190
|
+
- test/integration/cookbooks/node-tests/metadata.rb
|
191
|
+
- test/integration/cookbooks/node-tests/recipes/node1.rb
|
192
|
+
- test/integration/cookbooks/node-tests/recipes/node2.rb
|
193
|
+
- test/integration/node1/serverspec/default_spec.rb
|
194
|
+
- test/integration/node2/serverspec/Gemfile
|
195
|
+
- test/integration/node2/serverspec/default_spec.rb
|
196
|
+
- test/integration/nodes/node1-ubuntu-1204.json
|
197
|
+
- test/integration/nodes/node1-windows-2012R2.json
|
198
|
+
- test/integration/nodes/node2-ubuntu-1204.json
|
199
|
+
- test/integration/nodes/node2-windows-2012R2.json
|
177
200
|
has_rdoc:
|
data/CHANGELOG.md
DELETED