ra10ke 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/ra10ke.rb CHANGED
@@ -2,137 +2,44 @@ require 'rake'
2
2
  require 'rake/tasklib'
3
3
  require 'ra10ke/version'
4
4
  require 'ra10ke/solve'
5
+ require 'ra10ke/syntax'
6
+ require 'ra10ke/dependencies'
7
+ require 'ra10ke/install'
8
+ require 'ra10ke/validate'
5
9
  require 'git'
6
10
  require 'semverse'
7
-
11
+ require 'r10k/puppetfile'
8
12
  module Ra10ke
9
13
  class RakeTask < ::Rake::TaskLib
10
- def initialize(*args)
11
- namespace :r10k do
12
- desc "Print outdated forge modules"
13
- task :dependencies do
14
- require 'r10k/puppetfile'
15
- require 'puppet_forge'
16
-
17
- PuppetForge.user_agent = "ra10ke/#{Ra10ke::VERSION}"
18
- puppetfile = R10K::Puppetfile.new(Dir.pwd)
19
- puppetfile.load!
20
- PuppetForge.host = puppetfile.forge if puppetfile.forge =~ /^http/
21
-
22
- # ignore file allows for "don't tell me about this"
23
- ignore_modules = []
24
- if File.exist?('.r10kignore')
25
- ignore_modules = File.readlines('.r10kignore').each {|l| l.chomp!}
26
- end
27
-
28
- puppetfile.modules.each do |puppet_module|
29
- next if ignore_modules.include? puppet_module.title
30
- if puppet_module.class == R10K::Module::Forge
31
- module_name = puppet_module.title.gsub('/', '-')
32
- forge_version = PuppetForge::Module.find(module_name).current_release.version
33
- installed_version = puppet_module.expected_version
34
- if installed_version != forge_version
35
- puts "#{puppet_module.title} is OUTDATED: #{installed_version} vs #{forge_version}"
36
- end
37
- end
38
-
39
- if puppet_module.class == R10K::Module::Git
40
- # use helper; avoid `desired_ref`
41
- # we do not want to deal with `:control_branch`
42
- ref = puppet_module.version
43
- next unless ref
44
-
45
- remote = puppet_module.instance_variable_get(:@remote)
46
- remote_refs = Git.ls_remote(remote)
47
-
48
- # skip if ref is a branch
49
- next if remote_refs['branches'].key?(ref)
50
-
51
- if remote_refs['tags'].key?(ref)
52
- # there are too many possible versioning conventions
53
- # we have to be be opinionated here
54
- # so semantic versioning (vX.Y.Z) it is for us
55
- # as well as support for skipping the leading v letter
56
- tags = remote_refs['tags'].keys
57
- latest_tag = tags.map do |tag|
58
- begin
59
- Semverse::Version.new tag
60
- rescue Semverse::InvalidVersionFormat
61
- # ignore tags that do not comply to semver
62
- nil
63
- end
64
- end.select { |tag| !tag.nil? }.sort.last.to_s.downcase
65
- latest_ref = tags.detect { |tag| [tag.downcase, "v#{tag.downcase}"].include?(latest_tag) }
66
- latest_ref = 'undef (tags do not match semantic versioning)' if latest_ref.nil?
67
- elsif ref.match(/^[a-z0-9]{40}$/)
68
- # for sha just assume head should be tracked
69
- latest_ref = remote_refs['head'][:sha]
70
- else
71
- raise "Unable to determine ref type for #{puppet_module.title}"
72
- end
73
-
74
- puts "#{puppet_module.title} is OUTDATED: #{ref} vs #{latest_ref}" if ref != latest_ref
75
- end
76
- end
77
- end
14
+ include Ra10ke::Solve
15
+ include Ra10ke::Syntax
16
+ include Ra10ke::Dependencies
17
+ include Ra10ke::Install
18
+ include Ra10ke::Validate
78
19
 
79
- desc "Syntax check Puppetfile"
80
- task :syntax do
81
- require 'r10k/action/puppetfile/check'
20
+ attr_accessor :basedir, :moduledir, :puppetfile_path, :puppetfile_name, :force, :purge
82
21
 
83
- puppetfile = R10K::Action::Puppetfile::Check.new({
84
- :root => Dir.pwd,
85
- :moduledir => nil,
86
- :puppetfile => nil
87
- }, '')
88
-
89
- unless puppetfile.call
90
- abort("Puppetfile syntax check failed")
91
- end
92
- end
93
-
94
- desc "Install modules specified in Puppetfile"
95
- task :install, [:path] do |_, args|
96
- require 'r10k/puppetfile'
97
- require 'pathname'
98
-
99
- if !args.has_key?(:path)
100
- raise "task requires 'path' argument"
101
- end
102
- modpath = Pathname.new args[:path]
103
-
104
- if !modpath.absolute?
105
- modpath = Pathname.new(Dir.pwd) + modpath
106
- end
107
-
108
- puppetfile_dir = Pathname.new Dir.pwd
109
- modules_dir = File.join(puppetfile_dir, modpath.relative_path_from(puppetfile_dir))
110
- puppetfile = R10K::Puppetfile.new(puppetfile_dir, modules_dir)
111
- puppetfile.load!
22
+ def initialize(*args)
23
+ @basedir = Dir.pwd
24
+ @moduledir = nil
25
+ @puppetfile_path = nil
26
+ @puppetfile_name = nil
27
+ @force = nil
28
+ @purge = false
112
29
 
113
- puts "Processing Puppetfile for fixtures"
114
- puppetfile.modules.each do |mod|
115
- if mod.status == :insync
116
- puts "Skipping #{mod.name} (#{mod.version}) already in sync"
117
- else
118
- if mod.status == :absent
119
- msg = "installed #{mod.name}"
120
- else
121
- msg = "updated #{mod.name} from #{mod.version} to"
122
- end
123
- mod.sync
124
- if mod.status != :insync
125
- puts "Failed to sync #{mod.name}".red
126
- else
127
- puts "Successfully #{msg} #{mod.version}".green
128
- end
129
- end
130
- end
131
- end
30
+ yield(self) if block_given?
132
31
 
32
+ namespace :r10k do
33
+ define_task_solve_dependencies(*args)
34
+ define_task_syntax(*args)
35
+ define_task_dependencies(*args)
36
+ define_task_install(*args)
37
+ define_task_validate(*args)
133
38
  end
134
39
  end
40
+
41
+ def get_puppetfile
42
+ R10K::Puppetfile.new(@basedir, @moduledir, @puppetfile_path, @puppetfile_name, @force)
43
+ end
135
44
  end
136
45
  end
137
-
138
- Ra10ke::RakeTask.new
data/ra10ke.gemspec CHANGED
@@ -22,4 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency "git"
23
23
  spec.add_dependency "solve"
24
24
  spec.add_dependency 'semverse', '~> 2.0'
25
+ spec.add_dependency 'table_print', '~> 1.5.6'
26
+ spec.add_development_dependency 'rspec', '~> 3.6'
25
27
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ forge 'http://forge.puppetlabs.com'
4
+
5
+ mod 'puppetlabs/inifile', '2.2.0'
6
+ mod 'puppetlabs/stdlib', '4.24.0'
7
+ mod 'puppetlabs/concat', '4.0.0'
8
+ mod 'puppetlabs/ntp', '6.4.1'
9
+
10
+ # introduced for tomcat module collaboration with uws
11
+ mod 'puppet-archive', '3.1.1'
12
+
13
+ mod 'gitlab',
14
+ git: 'https://github.com/vshn/puppet-gitlab',
15
+ ref: '00397b86dfb3487d9df768cbd3698d362132b5bf' # master
16
+
17
+ mod 'r10k',
18
+ git: 'https://github.com/acidprime/r10k',
19
+ tag: 'v3.1.1'
20
+
21
+ mod 'gms',
22
+ git: 'https://github.com/npwalker/abrader-gms',
23
+ branch: 'gitlab_disable_ssl_verify_support'
24
+
25
+ mod 'pltraining-rbac',
26
+ git: 'https://github.com/puppetlabs/pltraining-rbac',
27
+ ref: '2f60e1789a721ce83f8df061e13f8bf81cd4e4ce'
28
+
29
+ mod 'puppet-acl',
30
+ git: 'https://github.com/dobbymoodge/puppet-acl.git',
31
+ branch: 'master'
32
+
33
+ mod 'deploy',
34
+ git: 'https://github.com/cudgel/deploy.git',
35
+ branch: 'master'
36
+
37
+ mod 'dotfiles',
38
+ git: 'https://github.com/cudgel/puppet-dotfiles.git',
39
+ branch: 'master'
40
+
41
+ mod 'splunk',
42
+ git: 'https://github.com/cudgel/splunk.git',
43
+ branch: 'prod'
@@ -0,0 +1,12 @@
1
+ mod 'puppet-hiera',
2
+ git: 'https://github.com/voxpupuli/puppet-hiera.git',
3
+ tag: '6.0.0'
4
+
5
+ mod 'puppet-hiera',
6
+ git: 'https://github.com/voxpupuli/puppet-hiera.git',
7
+ tag: 'v6.0.0'
8
+
9
+ mod 'puppet-hiera',
10
+ git: 'https://github.com/voxpupuli/puppet-hiera.git',
11
+ tag: 'abc'
12
+
@@ -0,0 +1,10 @@
1
+ forge "http://forge.puppetlabs.com"
2
+
3
+ mod 'gitlab',
4
+ :git => 'https://github.com/vshn/puppet-gitlab',
5
+ :ref => '00397b86dfb3487d9df768cbd3698d362132b5bf' # master
6
+
7
+ mod 'r10k',
8
+ :git => 'https://github.com/acidprime/r10k',
9
+ :tag => 'bad'
10
+
@@ -0,0 +1,290 @@
1
+ ref: refs/heads/master HEAD
2
+ 156ca9a8ea69e056e86355b27d944e59d1b3a1e1 HEAD
3
+ 0ec707e431367bbe2752966be8ab915b6f0da754 refs/heads/74110ac
4
+ 07bb5d2d94db222dca5860eb29c184e8970f36f4 refs/heads/fix_version
5
+ 156ca9a8ea69e056e86355b27d944e59d1b3a1e1 refs/heads/master
6
+ fcc0532bbc5a5b65f3941738339e9cc7e3d767ce refs/heads/modulesync
7
+ 8d54891fa5df75890ee15d53080c2a81b4960f92 refs/heads/rnelson0-patch-1
8
+ 1e73763bc2d9e6d0e3f9b1f212e7a73c2838bed0 refs/pull/1/head
9
+ b59c936b34086f719cb6d28a50e774ca22a77121 refs/pull/1/merge
10
+ 6eca20525cd290315b28a45e898e37830622f833 refs/pull/10/head
11
+ 8831444d775addccd106cdf00dc2ab0eec2f9d8b refs/pull/10/merge
12
+ 595dd8b9916c6975f33c94f15f4a0508eed30896 refs/pull/100/head
13
+ 34d91cb8a66f8f5d276e4fa16964611041a1583b refs/pull/101/head
14
+ 62fee8e705e72addf21cf1bb42826ff092a00283 refs/pull/102/head
15
+ a241e425eff63cc0279c2812969850987d7ae30b refs/pull/103/head
16
+ 275f742651ad86a6adc6839ef005507a2acbc310 refs/pull/104/head
17
+ fde0b2cc5ad230f7ab518a54eb6b1fb0e1c30db6 refs/pull/105/head
18
+ 06b69092778dedd9359fc0a7d12c0958545e44de refs/pull/105/merge
19
+ 631a70ed9efa9488bea9c64be432b072cad439f3 refs/pull/106/head
20
+ 1081aabc1f7881d34656f4d5e3f5b7010f529548 refs/pull/106/merge
21
+ 92f84f4fdd2ce37c836d8cae16faef4fcbe92092 refs/pull/107/head
22
+ 15ccd22c3918ecb37bcd6fe37da3b3cc75f2e09a refs/pull/107/merge
23
+ c3b726a4a775f5a2568be31dd58c0e18aa935258 refs/pull/11/head
24
+ 8519261ae226586a7f5181a09128e4dea8f70e58 refs/pull/110/head
25
+ 9d63ac78bc3ca8a903ed738dbdf42ac2355c3dd0 refs/pull/111/head
26
+ d639c670b6fdf95156a8dab3fb5e670a26d66186 refs/pull/112/head
27
+ bb36404711d319e1d6de063137f291b4b658f601 refs/pull/116/head
28
+ 204b7342b1ce18452f3d1cea233fa4e3ca543d21 refs/pull/117/head
29
+ aecf3d9a0fb1330edb554c5ad512ff37302d1da2 refs/pull/119/head
30
+ dcff0a785e6c7e9d44226af157bb14ed6f15002e refs/pull/12/head
31
+ 48654ae43d5579ceaa22f52ff5d3fe4ca78e98ca refs/pull/120/head
32
+ 2ca529e8df7d90a136a9cd719389108e62a610ce refs/pull/121/head
33
+ b31864fe957d1788b91c0584cbdb0289cde516e6 refs/pull/123/head
34
+ 421eb7c09ebc630103c7d0c7ffe79130322d575a refs/pull/125/head
35
+ 66405ef32bcded15603426144d37abbdc691040c refs/pull/127/head
36
+ 2613298b7005bcd8acba2cd824b09d5773bc3eea refs/pull/13/head
37
+ 6d6d2d3e5cf8b6ca275ec7eef19e3075196972a5 refs/pull/13/merge
38
+ 56e5c2ceac87a6253def854d21575a7694ebfc10 refs/pull/130/head
39
+ 8a05a98e98ec1aadb56dd6f4da8774db5098c9af refs/pull/131/head
40
+ 767196650c9130b12e9bd80db24da89905a6ba5c refs/pull/133/head
41
+ faa08ba48e9e7d4419b6f36beb8e0c9da816faa5 refs/pull/133/merge
42
+ 1f9024a864646f7073b16449ca3610ee81caf4a7 refs/pull/134/head
43
+ 361a9e371f1b48c3916c08063b22c064cb9665c4 refs/pull/135/head
44
+ 566270505c366364eec15213fad569e5a2322655 refs/pull/136/head
45
+ 82a38191aa00f160f8ff3a8e16e8b09a1a483e15 refs/pull/137/head
46
+ b831b75466276a7718f21e88c28140a216102528 refs/pull/139/head
47
+ bb4ce9bef78e42985ad70c186bfb72cabb651491 refs/pull/14/head
48
+ c8630f80c50cbc9c2199f2b28e3cb8252c7a2bb2 refs/pull/142/head
49
+ ef2696a4c75a48fb3392a9a87fbb1a56d27a2ce5 refs/pull/143/head
50
+ 6508822e9e065af86f8024de06ed5ed80f120668 refs/pull/144/head
51
+ 8087a669da0a1ad292b466e5c4d3e136dcfb8706 refs/pull/145/head
52
+ 2fc5ae2be90a22cc2f6014b5f07284279d594503 refs/pull/148/head
53
+ 4474243b280c69bb57cea0c84c78bc6237fb9724 refs/pull/149/head
54
+ 20270c4e83d53c6e75aef78bcf83f5621204d7c2 refs/pull/15/head
55
+ cfa7a7af2a9ea756390e2c81dc562b6a526da3bf refs/pull/15/merge
56
+ 562ce55321bcf00f8cae58e66f744333e017f20d refs/pull/150/head
57
+ 1c2cc834f586bb626ef018239db620e9e8d00773 refs/pull/151/head
58
+ 37a704b0d863f8817e6dde362ca38fbb7029e439 refs/pull/154/head
59
+ e0d46996ec27d66a5a1e5759b5d92a9ba6a0bdf3 refs/pull/155/head
60
+ ec4f6b86d6be8bd845b8f5bf311ded575c2fb7f7 refs/pull/156/head
61
+ 0ed3fab31ab4ecd466f49c01c97b9b57be5d032f refs/pull/157/head
62
+ 962de53f6d086f364c892f34070badc380bb5b22 refs/pull/159/head
63
+ b8fa15bc37d400d30f436f6fddba67b1ea0cf60e refs/pull/16/head
64
+ 379aba0478227014d1f367d53e0285522cccca30 refs/pull/160/head
65
+ ce7c1852246057faa737e9987c42ab227598868e refs/pull/162/head
66
+ 3b89335832e0a3f9e6884f35a00a8d98eb38df0e refs/pull/163/head
67
+ 0c5a6f601c84c3ef78d2563fe7738fbc5e81a9b9 refs/pull/164/head
68
+ 80f28faaae551c1a01658d2a111ab225588a052e refs/pull/165/head
69
+ e4c1d30280a9398a04f4b0bcf69fe50e6721e15a refs/pull/166/head
70
+ bea56bf399262d72604d62ed8af8a5be0b731d15 refs/pull/167/head
71
+ dadcafc081d590d00ec47d87de9d3cf8cc21cdc3 refs/pull/168/head
72
+ 36372ecee8c3c5d020cfb3914cdcbca3ea7626c3 refs/pull/169/head
73
+ 7e1a2b4d3ae6963f6841b2bd51febbe02e521de5 refs/pull/170/head
74
+ b19e30857f2806bf41bd051bfbcb2d18ec3ae2da refs/pull/170/merge
75
+ 5268a4aa1963981c55e00b944e71624c664f71b7 refs/pull/172/head
76
+ 3dfaa03a50941ef72fc36fa7ec8cf72c20331bf3 refs/pull/173/head
77
+ 3bae731eff94c91e6ad54714f637c0c3e803cb0c refs/pull/175/head
78
+ dce6a4f4f013e94b7ce6be66840a6edd7941b167 refs/pull/176/head
79
+ 682c875165ba65fa69c592667075d1ddf4240ca4 refs/pull/178/head
80
+ 76210d85889814721b879af8f094415b9d682e7d refs/pull/179/head
81
+ 0f8d16c921e881f9d419259413645b004c9d605d refs/pull/18/head
82
+ 81d63e664c7744e1f850ec9a88271a01d0f5bc1a refs/pull/180/head
83
+ 50b840a0e76929fe243a2a36c14b0d796fe09c87 refs/pull/181/head
84
+ 6c7550a8bc78ccae6b5127bce52837e86b94a870 refs/pull/181/merge
85
+ c474980937d7d016c4197826b9705a1218d3e920 refs/pull/182/head
86
+ a117f20d095c67837ba058c37204491416cc0b15 refs/pull/182/merge
87
+ 83ffe686dd8d1752097ca02bc9c59a56279f0988 refs/pull/183/head
88
+ 10dcb56ed1a230b087c99bfd0eebc9b01ffce383 refs/pull/184/head
89
+ 3c577f947e6c5c4788b173637ee73b556bfbf43d refs/pull/185/head
90
+ 53251c7cbfeefaff8bbb8a7b19530cf3021632a7 refs/pull/186/head
91
+ 42c4450df35acb3be444acc900f18042fa2579f3 refs/pull/188/head
92
+ 3edac6565d3bc3aa0bf1abc8f8b1ca5f72f28a89 refs/pull/190/head
93
+ a2ed086a929c0f0f483857824036000d6e03d7cd refs/pull/191/head
94
+ 92bc9de3b9b002ded8c03618f9e0818d1cd8dd8e refs/pull/192/head
95
+ d2d81a1de6d5e76a7897bc466c1c9ccc98537fda refs/pull/192/merge
96
+ bd212d186b3f92e48f35f1c8ead280990c866238 refs/pull/193/head
97
+ cb653b0947361d368488438e9fd115e4155786a2 refs/pull/194/head
98
+ 39e9e132f48025da15df62c0d73127625e43d52b refs/pull/195/head
99
+ a1f706289bc5fe8cb89f0696587e62ca10338695 refs/pull/196/head
100
+ cf5013d2399d88373ebc15c95e0c39da1e0e5be4 refs/pull/197/head
101
+ 05e1b72fbfa6881f82ed49731b982984a47c8b0a refs/pull/198/head
102
+ 76f3abbf2d45278752932834f45f02a1f7b6eb02 refs/pull/199/head
103
+ 1103ed378e5af878ded8a3a53af4e891de182fb7 refs/pull/2/head
104
+ 44284fd102116da664a076f92da7ff7f676ffbd1 refs/pull/2/merge
105
+ 8165ba665c9916f0d52429db4a700a2649117dff refs/pull/200/head
106
+ d00fb7576610b1b9606af06c4b5f7739c543b665 refs/pull/203/head
107
+ 8524690928993e1f9273420e087e75ba9c4c6692 refs/pull/204/head
108
+ 4f4c90dc5046acd0278270d2915ef66f3b8be011 refs/pull/205/head
109
+ 4dcdd547a15bc799545564860d9734a0ca1e6e77 refs/pull/207/head
110
+ 2071c4fe63b09c4b33fa10b26ad6a81f4fd5ad4b refs/pull/208/head
111
+ 8c217235edb80d27a999c95db5a7eb75fc39fd8d refs/pull/209/head
112
+ 81c5d76d5f773393f487ee9eaa7a86fed745e226 refs/pull/210/head
113
+ 308214bc3ea9967aeca63a1552bf34d3aa99a729 refs/pull/211/head
114
+ 48dd6ab0dddd0dc4126e824dee275b08a12a5953 refs/pull/212/head
115
+ ae5e101c1d1c7dccfa18791c09d9fac77042ff04 refs/pull/213/head
116
+ 1aa41f958fe4081056be7bb8b5abe07342878b4d refs/pull/216/head
117
+ 62139b3b4918e65d92023e61ee9c195d08b2259b refs/pull/217/head
118
+ 18da283d30a188fe387df7db9423489ec3035fb7 refs/pull/218/head
119
+ a9cd4935420b9ac332bd647608948cec33fd6777 refs/pull/219/head
120
+ 46c9a5a74be98f66c43c21248d53f3d5aff97771 refs/pull/22/head
121
+ 273ed93b0389c56c3fcff54f1a5cb7a55a5b499f refs/pull/221/head
122
+ 9608d3af35a2585d62a3e6012e4fac98d13b6ce0 refs/pull/222/head
123
+ 53aa8ec2876b788d89c6f46b86e4b18e0914a4fc refs/pull/223/head
124
+ 92ab0e39f2fd17af0ca8695d4ca95e86e9b03d24 refs/pull/225/head
125
+ 9f539064d7025aec0744665d96a7d9291ffe6838 refs/pull/226/head
126
+ 9adaec0b0179ba9874195009a3fbf5ac6014fc39 refs/pull/226/merge
127
+ 194d0b3d2cf2c9c67ccfe0c482981a8a2a9ce737 refs/pull/227/head
128
+ 376a621d8da483ace131033691f4faf5f6d8c9d1 refs/pull/228/head
129
+ bd08b5047f0463e48ce1b93c787b07aa8bcc7b62 refs/pull/229/head
130
+ 29c9a77239d16e0de34327446eab1a362760a5f2 refs/pull/229/merge
131
+ d7c2effaa3c4a74d088fb2196b6cdf2d71476d12 refs/pull/231/head
132
+ b8ef7b793c11ff6337b091f4ed8a1ab953a06ce1 refs/pull/232/head
133
+ ef02e7ab558212aa6750559288728e4918f6af54 refs/pull/233/head
134
+ bb4f7ca2ad8918b61f751281997b6b507a0ff002 refs/pull/234/head
135
+ bc3b1ccbb8908c1ea823aaf05da804ded072ad69 refs/pull/236/head
136
+ cf68109dca9a7c6a5c0d6ada6c1531b72a0b89e9 refs/pull/237/head
137
+ 286b108c6cd5e76e294a1a5825f0862d34118e21 refs/pull/238/head
138
+ 1520a7d3ef40b516b513dd1248648b1dce9eb32d refs/pull/239/head
139
+ 40ac653d2c626a4ca8f4dfec9a1a9a559553fb7f refs/pull/24/head
140
+ fd0cc9c53d01a6d46b3e9b55231f25d010ccecc2 refs/pull/24/merge
141
+ 18ccb629f973b505d4a18a4ea7de39fd4f4ec20e refs/pull/240/head
142
+ 24f680b347035b07060bd4e31eb1c840d9de1053 refs/pull/241/head
143
+ ef4d553c7b3eeabbe265c30901d33ad5d9a2e5ff refs/pull/242/head
144
+ e486af38bba794522ec5675713a163bc426f71e3 refs/pull/244/head
145
+ 4f12a988547520b3542ce44b8f32bee0b14df88b refs/pull/246/head
146
+ 71ab0591ef3d54a5368ef50b60749676917d2c25 refs/pull/247/head
147
+ fcc0532bbc5a5b65f3941738339e9cc7e3d767ce refs/pull/249/head
148
+ 3f8dd89efcce9154e5bc297749072cbce906c662 refs/pull/25/head
149
+ c704560397b04ba90ceee591e74660d8e689d5e2 refs/pull/250/head
150
+ b76695cee7ffd5d8ae0dd75f9e369aa56ae632bb refs/pull/251/head
151
+ ddde6afccbfcd4275522810421ceb5300f7a406b refs/pull/253/head
152
+ 30a38db35fa93e6f76d99f5a2bcf0b5bac7317a0 refs/pull/254/head
153
+ 88a0730df246e9258475b8c7120478ca4301fdd8 refs/pull/255/head
154
+ aba2ce8607690573ce48439a8fc8cad901aea732 refs/pull/256/head
155
+ 447ff87b64460a6c02225f8ff5ba92d3f8dbae03 refs/pull/257/head
156
+ 7d2cdca541069517f7969375ead3d2c444f9b42a refs/pull/258/head
157
+ 221a199d113985e43cb30a8040d5c2ef38a9a704 refs/pull/259/head
158
+ 0225a1ee8e55ed98202f5b6756b44b93b57fa761 refs/pull/260/head
159
+ 0e5525ed8065b3ea418934cdc569b29007a5b772 refs/pull/261/head
160
+ 2d01860aa51f3dcad1babcf86ae885ddaa9b9453 refs/pull/262/head
161
+ c89c34fa4878abbc8a298b769bc67918be561c94 refs/pull/264/head
162
+ 2c42371cdf44753ffbc6931773de1f87c0753293 refs/pull/266/head
163
+ 8d54891fa5df75890ee15d53080c2a81b4960f92 refs/pull/267/head
164
+ 3f1855f71bdca4a205c3a8998e8e38038df4c422 refs/pull/267/merge
165
+ 0522809e5e472419120aa449bd817678ec237366 refs/pull/268/head
166
+ 808b7b71798275ee8e1b93929a74e16c451aba09 refs/pull/269/head
167
+ d15c194a874c437743295ce29ba0b2e4cf673f98 refs/pull/27/head
168
+ f706647fdfed5c4a39b4d3fb96b47d302669e380 refs/pull/270/head
169
+ dca994acbe017db9d408172e2b7f2aef20563a2f refs/pull/270/merge
170
+ 6ef2f6193da1d6d79223e9d8c5071fb0007ec3de refs/pull/28/head
171
+ 4da47a821041fa051f9e16cd49b7881cba131a6d refs/pull/29/head
172
+ c8b57cdadac36790d2070267ca845059268d6ea2 refs/pull/3/head
173
+ bf858e0fe3c54fca763e2bbb8fce334ff1f38ddd refs/pull/3/merge
174
+ 73ef7b45a0b54ef6de6dc8a7b33f806da03a439c refs/pull/30/head
175
+ 05f0b0461edbfe5831cb83f7657ed5c4d7c26e1d refs/pull/32/head
176
+ c4347a3e557f2ee42017b5ba0a2d8e77d4a14900 refs/pull/33/head
177
+ 07c9875e5099436ab769487e8049d8d5669e8596 refs/pull/33/merge
178
+ 9abc48d7f9b37e7667495197a9afda00de29369e refs/pull/34/head
179
+ a895ee7582d5bdf91b2482d784f2134d80c5dc8f refs/pull/35/head
180
+ 03f3129cf834a46e2803b622d93becac2e61bde9 refs/pull/36/head
181
+ ca4eee0d7d6b1c3c2f55b08b3b6325020b8c8eb2 refs/pull/36/merge
182
+ d52758cbf2f4367d755f77610c2104f1871075f0 refs/pull/37/head
183
+ fda1f07fd8509eeb6c137dba19a0ec1338b2c0a9 refs/pull/39/head
184
+ 11103dc9d078af9014fea4b9a7a9b765b67e1c0a refs/pull/4/head
185
+ 1fd96cddb9576b9e64405cd6e3f09d0ae491356c refs/pull/4/merge
186
+ c37716566ff5da758fd91921aa9d170f50febbd7 refs/pull/40/head
187
+ 072bd5a0bf356d52309a69256504939bf48d795a refs/pull/41/head
188
+ 1e9e04972bdb9f82c3382fa7dcf00d21fe0ee262 refs/pull/42/head
189
+ 2b70a577a3561265ea879a4e2af749398990d126 refs/pull/43/head
190
+ f4bafc5d7d46bfc0e570d288c169cef35288f90f refs/pull/43/merge
191
+ dcbcf61c17306dc524ab31295ceb51ca416afa31 refs/pull/44/head
192
+ 89cd0c82d12a9b3c6d47d1ddbd08ce1c7c31ddd3 refs/pull/45/head
193
+ 073be8433701af539c55b30fa2ce20ae6e11b381 refs/pull/45/merge
194
+ a6d172079a2d13cf0662255b4f03acd55b23f9bb refs/pull/49/head
195
+ 6a76cb101e93a67c4dfeaf1f17050426109ddf42 refs/pull/5/head
196
+ d45aa7f303207d57cbae0169ff6b8f11ec1c514a refs/pull/5/merge
197
+ 5014ac2aa5abf5c682cc665d627c8cd272ecceea refs/pull/50/head
198
+ d102413549955b1fda6b7d2a0845fd84c3ab369c refs/pull/51/head
199
+ 975abc542e0beefaa3042d972064bfc4991385e4 refs/pull/52/head
200
+ 7ca06a5365908775c97d3a64f968792d450451ee refs/pull/54/head
201
+ 4565f6d8688d4256174ec8998b2164cf65c64227 refs/pull/54/merge
202
+ eb916f1c0f1b38942a9c3762ffb7185fad3ae991 refs/pull/56/head
203
+ d5ca70e045c648cb84c0b578882498cad3d267ea refs/pull/57/head
204
+ f15842a4aaca0d031fb50e6a615b408b7c9ed6ef refs/pull/58/head
205
+ 96de773e865416d04a952b71dce40a0780a6d3a8 refs/pull/59/head
206
+ c57e4955680e91cc2e15c3e7f1a22650948c4da2 refs/pull/6/head
207
+ c507086ae7d47023ce12ac4a629537b898bb23e4 refs/pull/6/merge
208
+ 52887ebcf62a976ebf92a26c07a7ab74ed108cb6 refs/pull/60/head
209
+ 6c388b7d9e9d87a4dba7ad86b70cfa9001b92039 refs/pull/64/head
210
+ cea49d405eb95bbfc53756170183221967687f62 refs/pull/65/head
211
+ 7d43ffe1c6de460dc163e6709c3b0a3025da2a1a refs/pull/66/head
212
+ 7932c73155bc8b46af5eca69e118e2ca398a25d8 refs/pull/68/head
213
+ 7c95ed6fafd1ecd82851b9fac46eda73e4b908a4 refs/pull/69/head
214
+ 49054e6bb5dd376184a8f4a83c69b43b1fd19010 refs/pull/69/merge
215
+ d09814c47592f4bbd70216b24958ee4c4800852b refs/pull/7/head
216
+ a24799789b582966662cf04397846e15c6be6f8c refs/pull/7/merge
217
+ cbf079bf84f40827ed4b0ea228b179f0826ddf7e refs/pull/70/head
218
+ 6915420803a6b26169b9a396aada9e2e6511cae6 refs/pull/71/head
219
+ a2398b8b6390867dde8ef61ba597b901ce67612c refs/pull/73/head
220
+ 0141ae4460d7a71f51023bc13eed0a216268af3d refs/pull/73/merge
221
+ 07bb5d2d94db222dca5860eb29c184e8970f36f4 refs/pull/74/head
222
+ 9eb823772f343d1848f8e5d9f7a05c9b9179df06 refs/pull/75/head
223
+ 5a523ae50458b89a8b54e7e51180ce01b72e741f refs/pull/75/merge
224
+ 5cbe5238b52880706fc98b34b8b5c9c74188fa7d refs/pull/77/head
225
+ b90a63424bdd9b885b0e8805aec87cfb3303e14b refs/pull/77/merge
226
+ 031f59fb5c8acfdeef725ce00c6bf4e1dc75e577 refs/pull/78/head
227
+ 6f75f0ebe8f8f1b325dcec57af45fefbe90582c7 refs/pull/78/merge
228
+ 1377728fab6c693137445a709b0f9da32517f1c1 refs/pull/79/head
229
+ d09814c47592f4bbd70216b24958ee4c4800852b refs/pull/8/head
230
+ b4464cf83a3247d92d8537567cb0f084d2da6f45 refs/pull/8/merge
231
+ fff4d9b74fa7c914a0ac031c8d22f5ea727bb230 refs/pull/80/head
232
+ eee87dc1f557e8e3881431eaf538706c2ac58b51 refs/pull/81/head
233
+ fb265dcaaf3363de236541fb5ae24a8532a3f65f refs/pull/84/head
234
+ 0095ec704786ad017bcb788a380085b092cbb763 refs/pull/84/merge
235
+ 503690e568314832eac92f8ecad885500a2c52b9 refs/pull/85/head
236
+ 5409608e84fa0bc21890b957adf0c2626a3c0e0b refs/pull/86/head
237
+ 906c7d8272d0a29973b646287eb20a3113058a07 refs/pull/87/head
238
+ b3295721cde93b97ed572e79243700f2a2194a00 refs/pull/87/merge
239
+ 866b4ede2be0ad329186afc84dcf655e7beef7ae refs/pull/88/head
240
+ 067554dd9a4c2e34c5349c5c414c0482cdc9e0a3 refs/pull/89/head
241
+ 4dd66633544fa2296eea1cbc942435a9b6829971 refs/pull/89/merge
242
+ 366f3d8674aadadc56a7218da1d13c6a8aae43ae refs/pull/9/head
243
+ cad96eb6eabca93071ad9a0a3263b4ef7c7bbe1b refs/pull/9/merge
244
+ 16028ad5c2edbc42df1ef0d94bfd8a829c26e854 refs/pull/90/head
245
+ e1945d4e1d6fba3a267f21b1503801732932f94e refs/pull/94/head
246
+ f2e814d923cf75fd13aa4a6ea7cb8132f1d38207 refs/pull/94/merge
247
+ 2160af80e009b82df6f8a9b727d6c8c5fb7fd02b refs/pull/98/head
248
+ 9616dd791b4ec12c6243d77b1f0207d890a4ab3f refs/pull/99/head
249
+ bb0d846ba7525b64754fa614b75de50e4ad35dbd refs/tags/0.1.0
250
+ 6fe7fbc232ad0e8105441f587c58dbf75792541c refs/tags/0.1.1
251
+ 10e91dc60f6f7f4fa80d86c7dc9cc7e490878a4c refs/tags/0.1.2
252
+ f3b5e18bc84fbca9de3eeb733b5d04813ab0fb63 refs/tags/0.2.0
253
+ a445ac6d0673e5beea903fcee6020f26e81312d7 refs/tags/0.2.1
254
+ 5cea53b6e621f29efd4efbc95a07b3744019af6b refs/tags/0.3.0
255
+ f15d7b4fd35e49dd7a44aa87917ef4a10ca7b6ea refs/tags/0.3.1
256
+ 2878c219e2b614743f139cd77d0fc5a6fa4e0960 refs/tags/1.0.0
257
+ 9634f6979c129d7834766175b59e8080fe7792bc refs/tags/1.0.1
258
+ 78e13a4e23ff5eeaaa84076bb50ccb0a25da89fc refs/tags/1.0.2
259
+ c5ab1242b1bbcd4dc4a366ddc527283f2c7f96f9 refs/tags/1.1.0
260
+ b728196e810534b78ab5206dcee7183c80227e69 refs/tags/1.1.1
261
+ a40dfe1b8d37453a7c0a228c953a313b39040aba refs/tags/1.2.0
262
+ 615b4e4a3f15a20b1d37e7bc140e61081bb52470 refs/tags/1.3.0
263
+ 9fee1af314e61307ada2eacd4e8b3de1e581ee11 refs/tags/1.3.0^{}
264
+ 00645ad0766cedb8dd998cc170a981dc82262f8b refs/tags/1.3.1
265
+ cbd64787c744c4f4634ace2b601c9e9517786cfe refs/tags/1.3.2
266
+ 5bc109737e0b3b2b1436225ba83c66e12a4fb804 refs/tags/1.3.2^{}
267
+ f809df7c043c541e771b3e82d0c0384de8372b8d refs/tags/1.4.0
268
+ d038dfd5b1bff29ffc77e82433dcdf11475eaea1 refs/tags/1.4.0^{}
269
+ 723b117f57dc8f45c54b5414dd25b40ac8508c1b refs/tags/1.4.1
270
+ 452c4fb8755634a017c78636bd3f35f3eab79216 refs/tags/1.4.1^{}
271
+ 4c7c6417f7318781211a65963ad712129df2bc56 refs/tags/2.0.0
272
+ 15f73f05fc6d8b327b5d7852ca0a4239f9893d05 refs/tags/2.0.0^{}
273
+ 266e96ed2714c5a67ab963989cfadc773e6ab5dc refs/tags/2.0.1
274
+ 9f4de0a5fb554ac76a0c5250711546382b6a5828 refs/tags/2.0.1^{}
275
+ af30d09f299019f0d868ead4b82ffd2598d27dcf refs/tags/v2.1.0
276
+ 178187774fd481cbe7dbabb1833b86b446f56e16 refs/tags/v2.1.1
277
+ 7b27d0172d532876a8514de76a13fd139e1ffce7 refs/tags/v2.1.2
278
+ bfd882ff85b4d6568dfe05f4a4401bd1b63de559 refs/tags/v2.2.0
279
+ 15d87d78f8f92f118ce5ee9ff88ef1eafe0aca2f refs/tags/v2.3.0
280
+ e5542e2d1df4bc742fd365e34779727ec69f222f refs/tags/v2.4.0
281
+ 63d0e8a4ede650490c19e2611e56c037955f2962 refs/tags/v3.0.0
282
+ 677625a5d1c197c577d18e35f111d764090bbeab refs/tags/v3.1.0
283
+ 99fe9997bf2aa12829d075aa401e6c79ac3b66a5 refs/tags/v3.2.0
284
+ 1bc0d26f972ceec8ae8330664e46e6a270ba7cd3 refs/tags/v3.3.0
285
+ d3f5ebb756d4f04dcb32fe18d28fe92e9822d7c6 refs/tags/v3.3.1
286
+ d1ab55a7ebbda5072f3972f73ca5031e30c949fd refs/tags/v3.3.2
287
+ e7c1251536a9e0f7f0b4a9c75a850ec1fb731732 refs/tags/v3.3.3
288
+ b0719ca141f76de586a4c81ac9623ddc9fde655b refs/tags/v3.3.4
289
+ be0e012dc084930a655f105ad6b0ee3e4528a098 refs/tags/v3.4.0
290
+ c11873253aebb047acb86f7fdddc4f3859d7296e refs/tags/v3.4.1
@@ -0,0 +1,103 @@
1
+ require 'spec_helper'
2
+ require 'ra10ke/puppetfile_parser'
3
+
4
+ RSpec.describe 'Ra10ke::PuppetfileParser' do
5
+ include Ra10ke::PuppetfileParser
6
+
7
+ let(:puppetfile) do
8
+ File.join(fixtures_dir, 'Puppetfile')
9
+ end
10
+
11
+ let(:puppetfile_modules) do
12
+ [{:args=>{:version=>"2.2.0"}, :name=>"inifile", :namespace=>"puppetlabs"},
13
+ {:args=>{:version=>"4.24.0"}, :name=>"stdlib", :namespace=>"puppetlabs"},
14
+ {:args=>{:version=>"4.0.0"}, :name=>"concat", :namespace=>"puppetlabs"},
15
+ {:args=>{:version=>"6.4.1"}, :name=>"ntp", :namespace=>"puppetlabs"},
16
+ {:args=>{:version=>"3.1.1"}, :name=>"archive", :namespace=>"puppet"},
17
+ {:args=>
18
+ {:git=>"https://github.com/vshn/puppet-gitlab",
19
+ :ref=>"00397b86dfb3487d9df768cbd3698d362132b5bf"},
20
+ :name=>"gitlab",
21
+ :namespace=>nil},
22
+ {:args=>{:git=>"https://github.com/acidprime/r10k", :tag=>"v3.1.1"},
23
+ :name=>"r10k",
24
+ :namespace=>nil},
25
+ {:args=>
26
+ {:branch=>"gitlab_disable_ssl_verify_support",
27
+ :git=>"https://github.com/npwalker/abrader-gms"},
28
+ :name=>"gms",
29
+ :namespace=>nil},
30
+ {:args=>
31
+ {:git=>"https://github.com/puppetlabs/pltraining-rbac",
32
+ :ref=>"2f60e1789a721ce83f8df061e13f8bf81cd4e4ce"},
33
+ :name=>"rbac",
34
+ :namespace=>"pltraining"},
35
+ {:args=>
36
+ {:branch=>"master", :git=>"https://github.com/dobbymoodge/puppet-acl.git"},
37
+ :name=>"acl",
38
+ :namespace=>"puppet"},
39
+ {:args=>{:branch=>"master", :git=>"https://github.com/cudgel/deploy.git"},
40
+ :name=>"deploy",
41
+ :namespace=>nil},
42
+ {:args=>
43
+ {:branch=>"master", :git=>"https://github.com/cudgel/puppet-dotfiles.git"},
44
+ :name=>"dotfiles",
45
+ :namespace=>nil},
46
+ {:args=>{:branch=>"prod", :git=>"https://github.com/cudgel/splunk.git"},
47
+ :name=>"splunk",
48
+ :namespace=>nil}]
49
+ end
50
+
51
+
52
+ it '#modules' do
53
+ expect(modules(puppetfile)).to eq(puppetfile_modules)
54
+ end
55
+
56
+ it '#git_modules' do
57
+ expected = [{:args=>
58
+ {:git=>"https://github.com/vshn/puppet-gitlab",
59
+ :ref=>"00397b86dfb3487d9df768cbd3698d362132b5bf"},
60
+ :name=>"gitlab",
61
+ :namespace=>nil},
62
+ {:args=>{:git=>"https://github.com/acidprime/r10k", :tag=>"v3.1.1"},
63
+ :name=>"r10k",
64
+ :namespace=>nil},
65
+ {:args=>
66
+ {:branch=>"gitlab_disable_ssl_verify_support",
67
+ :git=>"https://github.com/npwalker/abrader-gms"},
68
+ :name=>"gms",
69
+ :namespace=>nil},
70
+ {:args=>
71
+ {:git=>"https://github.com/puppetlabs/pltraining-rbac",
72
+ :ref=>"2f60e1789a721ce83f8df061e13f8bf81cd4e4ce"},
73
+ :name=>"rbac",
74
+ :namespace=>"pltraining"},
75
+ {:args=>
76
+ {:branch=>"master", :git=>"https://github.com/dobbymoodge/puppet-acl.git"},
77
+ :name=>"acl",
78
+ :namespace=>"puppet"},
79
+ {:args=>{:branch=>"master", :git=>"https://github.com/cudgel/deploy.git"},
80
+ :name=>"deploy",
81
+ :namespace=>nil},
82
+ {:args=>
83
+ {:branch=>"master", :git=>"https://github.com/cudgel/puppet-dotfiles.git"},
84
+ :name=>"dotfiles",
85
+ :namespace=>nil},
86
+ {:args=>{:branch=>"prod", :git=>"https://github.com/cudgel/splunk.git"},
87
+ :name=>"splunk",
88
+ :namespace=>nil}]
89
+ expect(git_modules(puppetfile)).to eq(expected)
90
+ end
91
+
92
+ it '#parse_modules_args' do
93
+ data = " 'puppet-acl', :git => 'https://github.com/dobbymoodge/puppet-acl.git', :branch => 'master'"
94
+ expect(parse_module_args(data)).to eq({:args=>{:branch=>"master",
95
+ :git=>"https://github.com/dobbymoodge/puppet-acl.git"},
96
+ :name=>"acl", :namespace=>"puppet"})
97
+ end
98
+
99
+ it '#parse_modules_args when empty' do
100
+ data = ""
101
+ expect(parse_module_args(data)).to eq({})
102
+ end
103
+ end