rspec_puppet_osmash 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 748f2aec811be62586c72ae960eaf1e00c13d9a8
4
+ data.tar.gz: 83550590747f65cc81219b5351b13a30c7407933
5
+ SHA512:
6
+ metadata.gz: e4ad8425e4e2cfb9b6e992dee4834637e30ae62e322b157025a3af23e6b047e099f4639990bf872787139b6b3ccd32380fb89addd0914343378fbacc5c245c1c
7
+ data.tar.gz: d904a108a7b719f25feec0f03fe279797d4f0b21cb9bb9d2704591cea32c14c8ab63f66f0e6cfac3e676a69944186f6e3ff315759676ed96e42e6d577f42670c
data/lib/osmash.json ADDED
@@ -0,0 +1,291 @@
1
+ [
2
+ {
3
+ "key" : "el4",
4
+ "osfamily" : "RedHat",
5
+ "operatingsystem" : "RedHat",
6
+ "kernel" : "Linux",
7
+ "release" : "4",
8
+ "releasetype" : "operatingsystemmajrelease"
9
+ },
10
+ {
11
+ "key" : "el5",
12
+ "osfamily" : "RedHat",
13
+ "operatingsystem" : "RedHat",
14
+ "kernel" : "Linux",
15
+ "release" : "5",
16
+ "releasetype" : "operatingsystemmajrelease"
17
+ },
18
+ {
19
+ "key" : "el6",
20
+ "osfamily" : "RedHat",
21
+ "operatingsystem" : "RedHat",
22
+ "kernel" : "Linux",
23
+ "release" : "6",
24
+ "releasetype" : "operatingsystemmajrelease"
25
+ },
26
+ {
27
+ "key" : "el7",
28
+ "osfamily" : "RedHat",
29
+ "operatingsystem" : "RedHat",
30
+ "kernel" : "Linux",
31
+ "release" : "7",
32
+ "releasetype" : "operatingsystemmajrelease"
33
+ },
34
+ {
35
+ "key" : "centos4",
36
+ "osfamily" : "RedHat",
37
+ "operatingsystem" : "CentOS",
38
+ "kernel" : "Linux",
39
+ "release" : "4",
40
+ "releasetype" : "operatingsystemmajrelease"
41
+ },
42
+ {
43
+ "key" : "centos5",
44
+ "osfamily" : "RedHat",
45
+ "operatingsystem" : "CentOS",
46
+ "kernel" : "Linux",
47
+ "release" : "5",
48
+ "releasetype" : "operatingsystemmajrelease"
49
+ },
50
+ {
51
+ "key" : "centos6",
52
+ "osfamily" : "RedHat",
53
+ "operatingsystem" : "CentOS",
54
+ "kernel" : "Linux",
55
+ "release" : "6",
56
+ "releasetype" : "operatingsystemmajrelease"
57
+ },
58
+ {
59
+ "key" : "centos7",
60
+ "osfamily" : "RedHat",
61
+ "operatingsystem" : "CentOS",
62
+ "kernel" : "Linux",
63
+ "release" : "7",
64
+ "releasetype" : "operatingsystemmajrelease"
65
+ },
66
+ {
67
+ "key" : "fedora17",
68
+ "osfamily" : "RedHat",
69
+ "operatingsystem" : "Fedora",
70
+ "kernel" : "Linux",
71
+ "release" : "17",
72
+ "releasetype" : "lsbdistrelease"
73
+ },
74
+ {
75
+ "key" : "fedora_rawhide",
76
+ "osfamily" : "RedHat",
77
+ "operatingsystem" : "Fedora",
78
+ "kernel" : "Linux",
79
+ "release" : "Rawhide",
80
+ "releasetype" : "lsbdistrelease"
81
+ },
82
+ {
83
+ "key" : "fedora21",
84
+ "osfamily" : "RedHat",
85
+ "operatingsystem" : "Fedora",
86
+ "kernel" : "Linux",
87
+ "release" : "21",
88
+ "releasetype" : "lsbdistrelease"
89
+ },
90
+ {
91
+ "key" : "freebsd8",
92
+ "osfamily" : "FreeBSD",
93
+ "operatingsystem" : "FreeBSD",
94
+ "kernel" : "FreeBSD",
95
+ "release" : "8",
96
+ "releasetype" : "operatingsystemmajrelease"
97
+ },
98
+ {
99
+ "key" : "freebsd9",
100
+ "osfamily" : "FreeBSD",
101
+ "operatingsystem" : "FreeBSD",
102
+ "kernel" : "FreeBSD",
103
+ "release" : "9",
104
+ "releasetype" : "operatingsystemmajrelease"
105
+ },
106
+ {
107
+ "key" : "freebsd10",
108
+ "osfamily" : "FreeBSD",
109
+ "operatingsystem" : "FreeBSD",
110
+ "kernel" : "FreeBSD",
111
+ "release" : "10",
112
+ "releasetype" : "operatingsystemmajrelease"
113
+ },
114
+ {
115
+ "key" : "suse8",
116
+ "osfamily" : "Suse",
117
+ "operatingsystem" : "Suse",
118
+ "release" : "8",
119
+ "releasetype" : "lsbmajdistrelease"
120
+ },
121
+ {
122
+ "key" : "suse9",
123
+ "osfamily" : "Suse",
124
+ "operatingsystem" : "Suse",
125
+ "release" : "9",
126
+ "releasetype" : "lsbmajdistrelease"
127
+ },
128
+ {
129
+ "key" : "suse10",
130
+ "osfamily" : "Suse",
131
+ "operatingsystem" : "Suse",
132
+ "release" : "10",
133
+ "releasetype" : "lsbmajdistrelease"
134
+ },
135
+ {
136
+ "key" : "suse11",
137
+ "osfamily" : "Suse",
138
+ "operatingsystem" : "Suse",
139
+ "release" : "11",
140
+ "releasetype" : "lsbmajdistrelease"
141
+ },
142
+ {
143
+ "key" : "suse12",
144
+ "osfamily" : "Suse",
145
+ "operatingsystem" : "Suse",
146
+ "release" : "12",
147
+ "releasetype" : "lsbmajdistrelease"
148
+ },
149
+ {
150
+ "key" : "suse13",
151
+ "osfamily" : "Suse",
152
+ "operatingsystem" : "Suse",
153
+ "release" : "13",
154
+ "releasetype" : "lsbmajdistrelease"
155
+ },
156
+ {
157
+ "key" : "solaris8",
158
+ "osfamily" : "Solaris",
159
+ "operatingsystem" : "Solaris",
160
+ "release" : "5.8",
161
+ "releasetype" : "kernelrelease"
162
+ },
163
+ {
164
+ "key" : "solaris9",
165
+ "osfamily" : "Solaris",
166
+ "operatingsystem" : "Solaris",
167
+ "release" : "5.9",
168
+ "releasetype" : "kernelrelease"
169
+ },
170
+ {
171
+ "key" : "solaris10",
172
+ "osfamily" : "Solaris",
173
+ "operatingsystem" : "Solaris",
174
+ "release" : "5.10",
175
+ "releasetype" : "kernelrelease"
176
+ },
177
+ {
178
+ "key" : "solaris11",
179
+ "osfamily" : "Solaris",
180
+ "operatingsystem" : "Solaris",
181
+ "release" : "5.11",
182
+ "releasetype" : "kernelrelease"
183
+ },
184
+ {
185
+ "key" : "debian6",
186
+ "osfamily" : "Debian",
187
+ "operatingsystem" : "Debian",
188
+ "kernel" : "Linux",
189
+ "release" : "6",
190
+ "codename" : "Lenny",
191
+ "lsbdistid" : "Debian",
192
+ "releasetype" : "lsbdistid"
193
+ },
194
+ {
195
+ "key" : "debian7",
196
+ "osfamily" : "Debian",
197
+ "operatingsystem" : "Debian",
198
+ "kernel" : "Linux",
199
+ "release" : "7",
200
+ "codename" : "Wheezy",
201
+ "lsbdistid" : "Debian",
202
+ "releasetype" : "lsbdistid"
203
+ },
204
+ {
205
+ "key" : "debian7",
206
+ "osfamily" : "Debian",
207
+ "operatingsystem" : "Debian",
208
+ "kernel" : "Linux",
209
+ "release" : "8",
210
+ "codename" : "Jessie",
211
+ "lsbdistid" : "Debian",
212
+ "releasetype" : "lsbdistid"
213
+ },
214
+ {
215
+ "key" : "ubuntu1004",
216
+ "osfamily" : "Debian",
217
+ "operatingsystem" : "Ubuntu",
218
+ "kernel" : "Linux",
219
+ "lsbdistid" : "Ubuntu",
220
+ "release" : "10.04",
221
+ "codename" : "Lucid Lynx",
222
+ "releasetype" : "lsbdistid",
223
+ "longservice" : "true"
224
+ },
225
+ {
226
+ "key" : "ubuntu1104",
227
+ "osfamily" : "Debian",
228
+ "operatingsystem" : "Ubuntu",
229
+ "kernel" : "Linux",
230
+ "lsbdistid" : "Ubuntu",
231
+ "release" : "11.04",
232
+ "codename" : "Natty Narwhal",
233
+ "releasetype" : "lsbdistid"
234
+ },
235
+ {
236
+ "key" : "ubuntu1204",
237
+ "osfamily" : "Debian",
238
+ "operatingsystem" : "Ubuntu",
239
+ "kernel" : "Linux",
240
+ "lsbdistid" : "Ubuntu",
241
+ "release" : "12.04",
242
+ "codename" : "Precise Pangolin",
243
+ "releasetype" : "lsbdistrelease",
244
+ "longservice" : "true"
245
+ },
246
+ {
247
+ "key" : "ubuntu1304",
248
+ "osfamily" : "Debian",
249
+ "operatingsystem" : "Ubuntu",
250
+ "kernel" : "Linux",
251
+ "lsbdistid" : "Ubuntu",
252
+ "release" : "13.04",
253
+ "codename" : "Raring Ringtail",
254
+ "releasetype" : "lsbdistid"
255
+ },
256
+ {
257
+ "key" : "ubuntu1404",
258
+ "osfamily" : "Debian",
259
+ "operatingsystem" : "Ubuntu",
260
+ "kernel" : "Linux",
261
+ "lsbdistid" : "Ubuntu",
262
+ "release" : "14.04",
263
+ "codename" : "Trusty Tahr",
264
+ "releasetype" : "lsbdistrelease",
265
+ "longservice" : "true"
266
+ },
267
+ {
268
+ "key" : "ubuntu1504",
269
+ "osfamily" : "Debian",
270
+ "operatingsystem" : "Ubuntu",
271
+ "kernel" : "Linux",
272
+ "lsbdistid" : "Ubuntu",
273
+ "release" : "15.04",
274
+ "codename" : "Vivid Vervet",
275
+ "releasetype" : "lsbdistid"
276
+ },
277
+ {
278
+ "key" : "darwin",
279
+ "osfamily" : "Darwin",
280
+ "operatingsystem" : "Darwin",
281
+ "release" : "13",
282
+ "releasetype" : "operatingsystemmajrelease"
283
+ },
284
+ {
285
+ "key" : "unknown",
286
+ "osfamily" : "Unknown",
287
+ "operatingsystem" : "Unknown",
288
+ "release" : "99",
289
+ "releasetype" : "operatingsystemmajrelease"
290
+ }
291
+ ]
@@ -0,0 +1,96 @@
1
+ class Rspec_puppet_osmash
2
+
3
+ require 'json'
4
+ require 'set'
5
+
6
+ def initialize (metadata_file_path = './metadata.json', osmash_library_path = 'default')
7
+
8
+ metadata_file = File.read( metadata_file_path )
9
+ @metadata = JSON.parse( metadata_file )
10
+
11
+ if osmash_library_path == 'default'
12
+ my_osmash_library = File.join(File.dirname(File.expand_path(__FILE__)), 'osmash.json')
13
+ else
14
+ my_osmash_library = osmash_library_path
15
+ end
16
+
17
+ osmash_library_file = File.read( my_osmash_library )
18
+ @osmash = JSON.parse( osmash_library_file )
19
+
20
+ @osmash.map! { |os|
21
+ unless os['name']
22
+ if os['codename']
23
+ codename = "\"#{os['codename']}\" "
24
+ else
25
+ codename = ""
26
+ end
27
+ os.merge( { 'name' => "#{os['operatingsystem']} #{codename}#{os['release']}" } )
28
+ else
29
+ os
30
+ end
31
+ }
32
+
33
+ matched = Set.new
34
+ unmatched = Set.new
35
+ @osmash.each do | os |
36
+ if self.osmetadata.any? { |mos|
37
+ mos['operatingsystem'] == os['operatingsystem'] and
38
+ mos['operatingsystemrelease'].include? os['release']
39
+ }
40
+ matched << os
41
+ else
42
+ unmatched << os
43
+ end
44
+ end
45
+ @supported = matched.to_a
46
+ @unsupported = unmatched.to_a
47
+
48
+ knownos = Set.new
49
+ @osmash.each do | os |
50
+ knownos << os
51
+ end
52
+ @known = knownos.to_a
53
+
54
+ unknownos = self.osmetadata.dup
55
+ @osmash.each do | os |
56
+ unknownos.delete_if { | mos |
57
+ mos['operatingsystem'] == os['operatingsystem'] and
58
+ mos['operatingsystemrelease'].include? os['release']
59
+ }
60
+ end
61
+ @unknown = unknownos.to_a
62
+ end
63
+
64
+ def all
65
+ @osmash
66
+ end
67
+
68
+ def metadata(key = 'all')
69
+ if key == 'all'
70
+ @metadata
71
+ else
72
+ @metadata[key]
73
+ end
74
+ end
75
+
76
+ def osmetadata
77
+ @metadata['operatingsystem_support']
78
+ end
79
+
80
+ def supported
81
+ @supported
82
+ end
83
+
84
+ def unsupported
85
+ @unsupported
86
+ end
87
+
88
+ def known
89
+ @known
90
+ end
91
+
92
+ def unknown
93
+ @unknown
94
+ end
95
+
96
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec_puppet_osmash
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Hicks
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1'
27
+ description: Provides Operation System hashes and validations for rspec-puppet
28
+ email: aethylred@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/osmash.json
34
+ - lib/rspec_puppet_osmash.rb
35
+ homepage: http://rubygems.org/gems/hola
36
+ licenses:
37
+ - Apache-2.0
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 2.2.2
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: Provides Operation System hashes and validations for rspec-puppet
59
+ test_files: []