rspec_puppet_osmash 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []