train 1.5.11 → 1.6.3

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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/lib/train/transports/winrm.rb +16 -4
  3. data/lib/train/version.rb +1 -1
  4. metadata +3 -165
  5. data/.rubocop.yml +0 -77
  6. data/CHANGELOG.md +0 -900
  7. data/Gemfile +0 -41
  8. data/README.md +0 -212
  9. data/Rakefile +0 -73
  10. data/test/fixtures/plugins/train-test-fixture/LICENSE +0 -201
  11. data/test/fixtures/plugins/train-test-fixture/README.md +0 -5
  12. data/test/fixtures/plugins/train-test-fixture/lib/train-test-fixture/connection.rb +0 -35
  13. data/test/fixtures/plugins/train-test-fixture/lib/train-test-fixture/platform.rb +0 -18
  14. data/test/fixtures/plugins/train-test-fixture/lib/train-test-fixture/transport.rb +0 -14
  15. data/test/fixtures/plugins/train-test-fixture/lib/train-test-fixture/version.rb +0 -5
  16. data/test/fixtures/plugins/train-test-fixture/lib/train-test-fixture.rb +0 -4
  17. data/test/fixtures/plugins/train-test-fixture/pkg/train-test-fixture-0.1.0.gem +0 -0
  18. data/test/fixtures/plugins/train-test-fixture/train-test-fixture.gemspec +0 -35
  19. data/test/integration/.kitchen.yml +0 -43
  20. data/test/integration/Berksfile +0 -3
  21. data/test/integration/bootstrap.sh +0 -22
  22. data/test/integration/chefignore +0 -1
  23. data/test/integration/cookbooks/test/metadata.rb +0 -1
  24. data/test/integration/cookbooks/test/recipes/default.rb +0 -100
  25. data/test/integration/cookbooks/test/recipes/prep_files.rb +0 -56
  26. data/test/integration/docker_run.rb +0 -153
  27. data/test/integration/docker_test.rb +0 -24
  28. data/test/integration/docker_test_container.rb +0 -24
  29. data/test/integration/helper.rb +0 -61
  30. data/test/integration/sudo/customcommand.rb +0 -15
  31. data/test/integration/sudo/nopasswd.rb +0 -16
  32. data/test/integration/sudo/passwd.rb +0 -21
  33. data/test/integration/sudo/reqtty.rb +0 -17
  34. data/test/integration/sudo/run_as.rb +0 -12
  35. data/test/integration/test-travis-centos.yml +0 -6
  36. data/test/integration/test-travis-debian.yml +0 -6
  37. data/test/integration/test-travis-fedora.yml +0 -8
  38. data/test/integration/test-travis-oel.yml +0 -6
  39. data/test/integration/test-travis-ubuntu.yml +0 -8
  40. data/test/integration/test_local.rb +0 -19
  41. data/test/integration/test_ssh.rb +0 -39
  42. data/test/integration/tests/path_block_device_test.rb +0 -74
  43. data/test/integration/tests/path_character_device_test.rb +0 -74
  44. data/test/integration/tests/path_file_test.rb +0 -99
  45. data/test/integration/tests/path_folder_test.rb +0 -90
  46. data/test/integration/tests/path_missing_test.rb +0 -76
  47. data/test/integration/tests/path_pipe_test.rb +0 -62
  48. data/test/integration/tests/path_symlink_test.rb +0 -95
  49. data/test/integration/tests/run_command_test.rb +0 -35
  50. data/test/unit/extras/command_wrapper_test.rb +0 -110
  51. data/test/unit/extras/stat_test.rb +0 -210
  52. data/test/unit/file/local/unix_test.rb +0 -224
  53. data/test/unit/file/local/windows_test.rb +0 -101
  54. data/test/unit/file/local_test.rb +0 -121
  55. data/test/unit/file/remote/aix_test.rb +0 -81
  56. data/test/unit/file/remote/linux_test.rb +0 -221
  57. data/test/unit/file/remote/qnx_test.rb +0 -80
  58. data/test/unit/file/remote/unix_test.rb +0 -119
  59. data/test/unit/file/remote/windows_test.rb +0 -72
  60. data/test/unit/file/remote_test.rb +0 -62
  61. data/test/unit/file_test.rb +0 -129
  62. data/test/unit/helper.rb +0 -7
  63. data/test/unit/platforms/detect/os_common_test.rb +0 -85
  64. data/test/unit/platforms/detect/os_linux_test.rb +0 -132
  65. data/test/unit/platforms/detect/os_windows_test.rb +0 -107
  66. data/test/unit/platforms/detect/scanner_test.rb +0 -61
  67. data/test/unit/platforms/detect/uuid_test.rb +0 -133
  68. data/test/unit/platforms/family_test.rb +0 -32
  69. data/test/unit/platforms/os_detect_test.rb +0 -249
  70. data/test/unit/platforms/platform_test.rb +0 -405
  71. data/test/unit/platforms/platforms_test.rb +0 -52
  72. data/test/unit/plugins/connection_test.rb +0 -219
  73. data/test/unit/plugins/transport_test.rb +0 -111
  74. data/test/unit/plugins_test.rb +0 -22
  75. data/test/unit/train_test.rb +0 -247
  76. data/test/unit/transports/aws_test.rb +0 -120
  77. data/test/unit/transports/azure_test.rb +0 -145
  78. data/test/unit/transports/cisco_ios_connection.rb +0 -92
  79. data/test/unit/transports/gcp_test.rb +0 -266
  80. data/test/unit/transports/helpers/azure/file_credentials_test.rb +0 -129
  81. data/test/unit/transports/local_test.rb +0 -183
  82. data/test/unit/transports/mock_test.rb +0 -150
  83. data/test/unit/transports/ssh_test.rb +0 -330
  84. data/test/unit/transports/vmware_test.rb +0 -159
  85. data/test/unit/version_test.rb +0 -8
  86. data/test/windows/local_test.rb +0 -243
  87. data/test/windows/winrm_test.rb +0 -187
  88. data/train.gemspec +0 -45
@@ -1,133 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'helper'
4
- require 'train/transports/mock'
5
- require 'securerandom'
6
-
7
- class TestFile
8
- def initialize(string)
9
- @string = string
10
- end
11
-
12
- def exist?
13
- true
14
- end
15
-
16
- def size
17
- @string.length
18
- end
19
-
20
- def content
21
- @string
22
- end
23
- end
24
-
25
- describe 'uuid' do
26
- def mock_platform(name, commands = {}, files = {}, plat_options = {})
27
- Train::Platforms.list[name] = nil
28
- mock = Train::Transports::Mock::Connection.new
29
- commands.each do |command, data|
30
- mock.mock_command(command, data)
31
- end
32
-
33
- file_objects = {}
34
- files.each do |path, content|
35
- file_objects[path] = TestFile.new(content)
36
- end
37
-
38
- mock.files = file_objects
39
- mock.force_platform!(name, plat_options)
40
- end
41
-
42
- it 'finds a linux uuid from chef entity_uuid' do
43
- files = { '/var/chef/cache/data_collector_metadata.json' => '{"node_uuid":"d400073f-0920-41aa-8dd3-2ea59b18f5ce"}' }
44
- plat = mock_platform('linux', {}, files)
45
- plat.uuid.must_equal 'd400073f-0920-41aa-8dd3-2ea59b18f5ce'
46
- end
47
-
48
- it 'finds a windows uuid from chef entity_uuid' do
49
- ENV['SYSTEMDRIVE'] = 'C:'
50
- files = { 'C:\chef\cache\data_collector_metadata.json' => '{"node_uuid":"d400073f-0920-41aa-8dd3-2ea59b18f5ce"}' }
51
- plat = mock_platform('windows', {}, files)
52
- plat.uuid.must_equal 'd400073f-0920-41aa-8dd3-2ea59b18f5ce'
53
- end
54
-
55
- it 'finds a linux uuid from /etc/chef/chef_guid' do
56
- files = { '/etc/chef/chef_guid' => '5e430326-b5aa-56f8-975f-c3ca1c21df91' }
57
- plat = mock_platform('linux', {}, files)
58
- plat.uuid.must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
59
- end
60
-
61
- it 'finds a linux uuid from /home/testuser/.chef/chef_guid' do
62
- ENV['HOME'] = '/home/testuser'
63
- files = { '/home/testuser/.chef/chef_guid' => '5e430326-b5aa-56f8-975f-c3ca1c21df91' }
64
- plat = mock_platform('linux', {}, files)
65
- plat.uuid.must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
66
- end
67
-
68
- it 'finds a linux uuid from /etc/machine-id' do
69
- files = { '/etc/machine-id' => '123141dsfadf' }
70
- plat = mock_platform('linux', {}, files)
71
- plat.uuid.must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
72
- end
73
-
74
- it 'finds a linux uuid from /var/lib/dbus/machine-id' do
75
- files = {
76
- '/etc/machine-id' => '',
77
- '/var/lib/dbus/machine-id' => '123141dsfadf',
78
- }
79
- plat = mock_platform('linux', {}, files)
80
- plat.uuid.must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
81
- end
82
-
83
- it 'finds a linux uuid from /etc/machine-id' do
84
- files = { '/etc/machine-id' => '123141dsfadf' }
85
- plat = mock_platform('linux', {}, files)
86
- plat.uuid.must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
87
- end
88
-
89
- it 'finds a windows uuid from wmic' do
90
- commands = { 'wmic csproduct get UUID' => "UUID\r\nd400073f-0920-41aa-8dd3-2ea59b18f5ce\r\n" }
91
- plat = mock_platform('windows', commands)
92
- plat.uuid.must_equal 'd400073f-0920-41aa-8dd3-2ea59b18f5ce'
93
- end
94
-
95
- it 'finds a windows uuid from registry' do
96
- commands = { '(Get-ItemProperty "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography" -Name "MachineGuid")."MachineGuid"' => "d400073f-0920-41aa-8dd3-2ea59b18f5ce\r\n" }
97
- plat = mock_platform('windows', commands)
98
- plat.uuid.must_equal 'd400073f-0920-41aa-8dd3-2ea59b18f5ce'
99
- end
100
-
101
- it 'finds a windows uuid from C:\chef\chef_guid' do
102
- ENV['SYSTEMDRIVE'] = 'C:'
103
- files = { 'C:\chef\chef_guid' => '5e430326-b5aa-56f8-975f-c3ca1c21df91' }
104
- plat = mock_platform('windows', {}, files)
105
- plat.uuid.must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
106
- end
107
-
108
- it 'finds a windows uuid from C:\Users\test\.chef\chef_guid' do
109
- ENV['HOMEDRIVE'] = 'C:\\'
110
- ENV['HOMEPATH'] = 'Users\test'
111
- files = { 'C:\Users\test\.chef\chef_guid' => '5e430326-b5aa-56f8-975f-c3ca1c21df91' }
112
- plat = mock_platform('windows', {}, files)
113
- plat.uuid.must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
114
- end
115
-
116
- it 'generates a uuid from a string' do
117
- plat = mock_platform('linux')
118
- uuid = Train::Platforms::Detect::UUID.new(plat)
119
- uuid.uuid_from_string('123141dsfadf').must_equal '5e430326-b5aa-56f8-975f-c3ca1c21df91'
120
- end
121
-
122
- it 'finds a aws uuid' do
123
- plat = mock_platform('aws')
124
- plat.backend.stubs(:unique_identifier).returns('158551926027')
125
- plat.uuid.must_equal '1d74ce61-ac15-5c48-9ee3-5aa8207ac37f'
126
- end
127
-
128
- it 'finds an azure uuid' do
129
- plat = mock_platform('azure')
130
- plat.backend.stubs(:unique_identifier).returns('1d74ce61-ac15-5c48-9ee3-5aa8207ac37f')
131
- plat.uuid.must_equal '2c2e4fa9-7287-5dee-85a3-6527face7b7b'
132
- end
133
- end
@@ -1,32 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'helper'
4
-
5
- describe 'platform family' do
6
- def mock_family(x)
7
- Train::Platforms.families[x] = nil if x == 'mock'
8
- Train::Platforms.family(x)
9
- end
10
-
11
- it 'set family title' do
12
- plat = mock_family('mock')
13
- plat.title.must_equal('Mock Family')
14
- plat.title('The Best Mock Family')
15
- plat.title.must_equal('The Best Mock Family')
16
- end
17
-
18
- it 'set family in a family' do
19
- plat = mock_family('family1')
20
- plat.in_family('family2')
21
- plat.families.keys[0].name.must_equal('family2')
22
-
23
- plat = mock_family('family2')
24
- plat.children.keys[0].name.must_equal('family1')
25
- end
26
-
27
- it 'set family in a family with condition' do
28
- plat = Train::Platforms.family('family4', arch: '= x68_64').in_family('family5')
29
- plat.families.keys[0].name.must_equal('family5')
30
- plat.families.values[0].must_equal({ arch: '= x68_64' })
31
- end
32
- end
@@ -1,249 +0,0 @@
1
- # encoding: utf-8
2
- require 'helper'
3
- require 'train/transports/mock'
4
-
5
- class OsDetectLinuxTester
6
- include Train::Platforms::Detect::Helpers::OSCommon
7
- end
8
-
9
- describe 'os_detect' do
10
- let(:detector) { OsDetectLinuxTester.new }
11
-
12
- def scan_with_files(uname, files)
13
- mock = Train::Transports::Mock::Connection.new
14
- mock.mock_command('uname -s', uname)
15
- mock.mock_command('uname -r', 'test-release')
16
- files.each do |path, data|
17
- mock.mock_command("test -f #{path}")
18
- mock.mock_command("test -f #{path} && cat #{path}", data)
19
- end
20
- Train::Platforms::Detect.scan(mock)
21
- end
22
-
23
- ## Detect all linux distros
24
- describe '/etc/enterprise-release' do
25
- it 'sets the correct family/release for oracle' do
26
- path = '/etc/enterprise-release'
27
- platform = scan_with_files('linux', { path => 'release 7' })
28
-
29
- platform[:name].must_equal('oracle')
30
- platform[:family].must_equal('redhat')
31
- platform[:release].must_equal('7')
32
- end
33
- end
34
-
35
- describe '/etc/redhat-release' do
36
- describe 'and /etc/os-release' do
37
- it 'sets the correct family, name, and release on centos' do
38
- files = {
39
- '/etc/redhat-release' => "CentOS Linux release 7.2.1511 (Core) \n",
40
- '/etc/os-release' => "NAME=\"CentOS Linux\"\nVERSION=\"7 (Core)\"\nID=\"centos\"\nID_LIKE=\"rhel fedora\"\n",
41
- }
42
- platform = scan_with_files('linux', files)
43
- platform[:name].must_equal('centos')
44
- platform[:family].must_equal('redhat')
45
- platform[:release].must_equal('7.2.1511')
46
- end
47
- it 'sets the correct family, name, and release on scientific linux' do
48
- files = {
49
- '/etc/redhat-release' => "Scientific Linux release 7.4 (Nitrogen)\n",
50
- '/etc/os-release' => "NAME=\"Scientific Linux\"\nVERSION=\"7.4 (Nitrogen)\"\nID=\"rhel\"\nID_LIKE=\"scientific centos fedora\"\nVERSION_ID=\"7.4\"\nPRETTY_NAME=\"Scientific Linux 7.4 (Nitrogen)\"\nANSI_COLOR=\"0;31\"\nCPE_NAME=\"cpe:/o:scientificlinux:scientificlinux:7.4:GA\"\nHOME_URL=\"http://www.scientificlinux.org//\"\nBUG_REPORT_URL=\"mailto:scientific-linux-devel@listserv.fnal.gov\"\n\nREDHAT_BUGZILLA_PRODUCT=\"Scientific Linux 7\"\nREDHAT_BUGZILLA_PRODUCT_VERSION=7.4\nREDHAT_SUPPORT_PRODUCT=\"Scientific Linux\"\nREDHAT_SUPPORT_PRODUCT_VERSION=\"7.4\"\n",
51
- }
52
- platform = scan_with_files('linux', files)
53
- platform[:name].must_equal('scientific')
54
- platform[:family].must_equal('redhat')
55
- platform[:release].must_equal('7.4')
56
- end
57
- it 'sets the correct family, name, and release on CloudLinux' do
58
- files = {
59
- '/etc/redhat-release' => "CloudLinux release 7.4 (Georgy Grechko)\n",
60
- '/etc/os-release' => "NAME=\"CloudLinux\"\nVERSION=\"7.4 (Georgy Grechko)\"\nID=\"cloudlinux\"\nID_LIKE=\"rhel fedora centos\"\nVERSION_ID=\"7.4\"\nPRETTY_NAME=\"CloudLinux 7.4 (Georgy Grechko)\"\nANSI_COLOR=\"0;31\"\nCPE_NAME=\"cpe:/o:cloudlinux:cloudlinux:7.4:GA:server\"\nHOME_URL=\"https://www.cloudlinux.com//\"\nBUG_REPORT_URL=\"https://www.cloudlinux.com/support\"\n",
61
- }
62
- platform = scan_with_files('linux', files)
63
- platform[:name].must_equal('cloudlinux')
64
- platform[:family].must_equal('redhat')
65
- platform[:release].must_equal('7.4')
66
- end
67
- end
68
- end
69
-
70
- describe 'darwin' do
71
- describe 'mac_os_x' do
72
- it 'sets the correct family, name, and release on os_x' do
73
- files = {
74
- '/System/Library/CoreServices/SystemVersion.plist' => '<string>Mac OS X</string>',
75
- }
76
- platform = scan_with_files('darwin', files)
77
- platform[:name].must_equal('mac_os_x')
78
- platform[:family].must_equal('darwin')
79
- platform[:release].must_equal('test-release')
80
- end
81
- end
82
-
83
- describe 'generic darwin' do
84
- it 'sets the correct family, name, and release on darwin' do
85
- files = {
86
- '/usr/bin/sw_vers' => "ProductVersion: 17.0.1\nBuildVersion: alpha.x1",
87
- }
88
- platform = scan_with_files('darwin', files)
89
- platform[:name].must_equal('darwin')
90
- platform[:family].must_equal('darwin')
91
- platform[:release].must_equal('17.0.1')
92
- platform[:build].must_equal('alpha.x1')
93
- end
94
- end
95
- end
96
-
97
- describe '/etc/debian_version' do
98
- def debian_scan(id, version)
99
- lsb_release = "DISTRIB_ID=#{id}\nDISTRIB_RELEASE=#{version}"
100
- files = {
101
- '/etc/lsb-release' => lsb_release,
102
- '/etc/debian_version' => '11',
103
- }
104
- scan_with_files('linux', files)
105
- end
106
-
107
- describe 'ubuntu' do
108
- it 'sets the correct family/release for ubuntu' do
109
- platform = debian_scan('ubuntu', '16.04')
110
-
111
- platform[:name].must_equal('ubuntu')
112
- platform[:family].must_equal('debian')
113
- platform[:release].must_equal('16.04')
114
- end
115
- end
116
-
117
- describe 'linuxmint' do
118
- it 'sets the correct family/release for linuxmint' do
119
- platform = debian_scan('linuxmint', '12')
120
-
121
- platform[:name].must_equal('linuxmint')
122
- platform[:family].must_equal('debian')
123
- platform[:release].must_equal('12')
124
- end
125
- end
126
-
127
- describe 'raspbian' do
128
- it 'sets the correct family/release for raspbian ' do
129
- files = {
130
- '/usr/bin/raspi-config' => 'data',
131
- '/etc/debian_version' => '13.6',
132
- }
133
- platform = scan_with_files('linux', files)
134
-
135
- platform[:name].must_equal('raspbian')
136
- platform[:family].must_equal('debian')
137
- platform[:release].must_equal('13.6')
138
- end
139
- end
140
-
141
- describe 'everything else' do
142
- it 'sets the correct family/release for debian ' do
143
- platform = debian_scan('some_debian', '12.99')
144
-
145
- platform[:name].must_equal('debian')
146
- platform[:family].must_equal('debian')
147
- platform[:release].must_equal('11')
148
- end
149
- end
150
- end
151
-
152
- describe '/etc/coreos/update.conf' do
153
- it 'sets the correct family/release for coreos' do
154
- lsb_release = "DISTRIB_ID=Container Linux by CoreOS\nDISTRIB_RELEASE=27.9"
155
- files = {
156
- '/etc/lsb-release' => lsb_release,
157
- '/etc/coreos/update.conf' => 'data',
158
- }
159
- platform = scan_with_files('linux', files)
160
-
161
- platform[:name].must_equal('coreos')
162
- platform[:family].must_equal('linux')
163
- platform[:release].must_equal('27.9')
164
- end
165
- end
166
-
167
- describe '/etc/os-release' do
168
- describe 'when not on a wrlinux build' do
169
- it 'fail back to genaric linux' do
170
- os_release = "ID_LIKE=cisco-unkwown\nVERSION=unknown"
171
- files = {
172
- '/etc/os-release' => os_release,
173
- }
174
- platform = scan_with_files('linux', files)
175
-
176
- platform[:name].must_equal('linux')
177
- platform[:family].must_equal('linux')
178
- end
179
- end
180
-
181
- describe 'when on a wrlinux build' do
182
- it 'sets the correct family/release for wrlinux' do
183
- os_release = "ID_LIKE=cisco-wrlinux\nVERSION=cisco123"
184
- files = {
185
- '/etc/os-release' => os_release,
186
- }
187
- platform = scan_with_files('linux', files)
188
-
189
- platform[:name].must_equal('wrlinux')
190
- platform[:family].must_equal('redhat')
191
- platform[:release].must_equal('cisco123')
192
- end
193
- end
194
- end
195
-
196
- describe 'qnx' do
197
- it 'sets the correct info for qnx platform' do
198
- platform = scan_with_files('qnx', {})
199
-
200
- platform[:name].must_equal('qnx')
201
- platform[:family].must_equal('qnx')
202
- platform[:release].must_equal('test-release')
203
- end
204
- end
205
-
206
- describe 'cisco' do
207
- it 'recognizes Cisco IOS12' do
208
- mock = Train::Transports::Mock::Connection.new
209
- mock.mock_command('show version', "Cisco IOS Software, C3750E Software (C3750E-UNIVERSALK9-M), Version 12.2(58)SE")
210
- platform = Train::Platforms::Detect.scan(mock)
211
-
212
- platform[:name].must_equal('cisco_ios')
213
- platform[:family].must_equal('cisco')
214
- platform[:release].must_equal('12.2')
215
- end
216
-
217
- it 'recognizes Cisco IOS XE' do
218
- mock = Train::Transports::Mock::Connection.new
219
- mock.mock_command('show version', "Cisco IOS Software, IOS-XE Software, Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 03.03.03SE RELEASE SOFTWARE (fc2)")
220
- platform = Train::Platforms::Detect.scan(mock)
221
-
222
- platform[:name].must_equal('cisco_ios_xe')
223
- platform[:family].must_equal('cisco')
224
- platform[:release].must_equal('03.03.03SE')
225
- end
226
-
227
- it 'recognizes Cisco Nexus' do
228
- mock = Train::Transports::Mock::Connection.new
229
- mock.mock_command('show version', "Cisco Nexus Operating System (NX-OS) Software\n system: version 5.2(1)N1(8b)\n")
230
- platform = Train::Platforms::Detect.scan(mock)
231
-
232
- platform[:name].must_equal('cisco_nexus')
233
- platform[:family].must_equal('cisco')
234
- platform[:release].must_equal('5.2')
235
- end
236
- end
237
-
238
- describe 'brocade' do
239
- it 'recognizes Brocade FOS-based SAN switches' do
240
- mock = Train::Transports::Mock::Connection.new
241
- mock.mock_command('version', "Kernel: 2.6.14.2\nFabric OS: v7.4.2a\nMade on: Thu Jun 29 19:22:14 2017\nFlash: Sat Sep 9 17:30:42 2017\nBootProm: 1.0.11")
242
- platform = Train::Platforms::Detect.scan(mock)
243
-
244
- platform[:name].must_equal('brocade_fos')
245
- platform[:family].must_equal('brocade')
246
- platform[:release].must_equal('7.4.2a')
247
- end
248
- end
249
- end