onceover 3.19.0 → 3.19.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,104 +1,104 @@
1
- {
2
- "name": "vagrant-hb9g3rd.lan.asio",
3
- "values": {
4
- "puppetversion": "6.0.2",
5
- "puppet_inventory_metadata": {
6
- "packages": {
7
- "collection_enabled": false,
8
- "last_collection_time": "0.0s"
9
- }
10
- },
11
- "package_provider": "windows",
12
- "pe_concat_basedir": "C:/ProgramData/PuppetLabs/puppet/cache/pe_concat",
13
- "is_pe": false,
14
- "platform_symlink_writable": false,
15
- "puppet_files_dir_present": false,
16
- "puppet_vardir": "C:/ProgramData/PuppetLabs/puppet/cache",
17
- "puppet_environmentpath": "C:/ProgramData/PuppetLabs/code/environments",
18
- "puppet_server": "pe-puppet.localdomain",
19
- "service_provider": "windows",
20
- "staging_http_get": "curl",
21
- "common_appdata": "C:\\ProgramData",
22
- "architecture": "x64",
23
- "kernel": "windows",
24
- "virtual": "vmware",
25
- "is_virtual": true,
26
- "hardwaremodel": "x64",
27
- "operatingsystem": "windows",
28
- "os": {
29
- "name": "windows",
30
- "family": "windows",
31
- "release": {
32
- "major": "10",
33
- "full": "10"
34
- }
35
- },
36
- "facterversion": "2.5.1",
37
- "fqdn": "VAGRANT-HB9G3RD",
38
- "hostname": "VAGRANT-HB9G3RD",
39
- "id": "vagrant-hb9g3rd\\vagrant",
40
- "interfaces": "Ethernet0_2",
41
- "ipaddress_ethernet0_2": "192.168.43.174",
42
- "ipaddress6_ethernet0_2": "fd72:b3ab:b8dd:0:f563:fac2:928c:6aa",
43
- "macaddress_ethernet0_2": "00:0C:29:A3:53:54",
44
- "netmask_ethernet0_2": "255.255.255.0",
45
- "mtu_ethernet0_2": 0,
46
- "ipaddress": "192.168.43.174",
47
- "ipaddress6": "fd72:b3ab:b8dd:0:f563:fac2:928c:6aa",
48
- "kernelmajversion": "10.0",
49
- "kernelrelease": "10.0.17134",
50
- "kernelversion": "10.0.17134",
51
- "macaddress": "00:0C:29:A3:53:54",
52
- "manufacturer": "Phoenix Technologies LTD",
53
- "serialnumber": "VMware-56 4d 36 2e 2e a4 81 f9-0d 05 ae d0 e5 a3 53 54",
54
- "productname": "VMware Virtual Platform",
55
- "memorysize": "4.00 GB",
56
- "memoryfree": "2.30 GB",
57
- "memorysize_mb": "4095.49",
58
- "memoryfree_mb": "2360.00",
59
- "netmask": "255.255.255.0",
60
- "network_ethernet0_2": "192.168.43.0",
61
- "operatingsystemmajrelease": "10",
62
- "operatingsystemrelease": "10",
63
- "osfamily": "windows",
64
- "path": "C:\\tools\\ruby24\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files (x86)\\vim\\vim80;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\Users\\vagrant\\AppData\\Local\\Microsoft\\WindowsApps;",
65
- "physicalprocessorcount": 4,
66
- "processors": {
67
- "models": [
68
- "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
69
- "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
70
- "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
71
- "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz"
72
- ],
73
- "count": 4,
74
- "physicalcount": 4
75
- },
76
- "processor0": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
77
- "processor1": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
78
- "processor2": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
79
- "processor3": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
80
- "processorcount": 4,
81
- "ps": "tasklist.exe",
82
- "rubyplatform": "x64-mingw32",
83
- "rubysitedir": "C:/tools/ruby24/lib/ruby/site_ruby/2.4.0",
84
- "rubyversion": "2.4.3",
85
- "system32": "C:\\Windows\\system32",
86
- "choco_install_path": "C:\\ProgramData\\chocolatey",
87
- "system_uptime": {
88
- "seconds": 1113359,
89
- "hours": 309,
90
- "days": 12,
91
- "uptime": "12 days"
92
- },
93
- "timezone": "GMT Standard Time",
94
- "uptime": "12 days",
95
- "uptime_days": 12,
96
- "uptime_hours": 309,
97
- "uptime_seconds": 1113359,
98
- "clientcert": "vagrant-hb9g3rd.lan.asio",
99
- "clientversion": "6.0.2",
100
- "clientnoop": false
101
- },
102
- "timestamp": "2018-12-10T21:43:07.468533000+00:00",
103
- "expiration": "2018-12-10T22:13:07.468533000+00:00"
104
- }
1
+ {
2
+ "name": "vagrant-hb9g3rd.lan.asio",
3
+ "values": {
4
+ "puppetversion": "6.0.2",
5
+ "puppet_inventory_metadata": {
6
+ "packages": {
7
+ "collection_enabled": false,
8
+ "last_collection_time": "0.0s"
9
+ }
10
+ },
11
+ "package_provider": "windows",
12
+ "pe_concat_basedir": "C:/ProgramData/PuppetLabs/puppet/cache/pe_concat",
13
+ "is_pe": false,
14
+ "platform_symlink_writable": false,
15
+ "puppet_files_dir_present": false,
16
+ "puppet_vardir": "C:/ProgramData/PuppetLabs/puppet/cache",
17
+ "puppet_environmentpath": "C:/ProgramData/PuppetLabs/code/environments",
18
+ "puppet_server": "pe-puppet.localdomain",
19
+ "service_provider": "windows",
20
+ "staging_http_get": "curl",
21
+ "common_appdata": "C:\\ProgramData",
22
+ "architecture": "x64",
23
+ "kernel": "windows",
24
+ "virtual": "vmware",
25
+ "is_virtual": true,
26
+ "hardwaremodel": "x64",
27
+ "operatingsystem": "windows",
28
+ "os": {
29
+ "name": "windows",
30
+ "family": "windows",
31
+ "release": {
32
+ "major": "10",
33
+ "full": "10"
34
+ }
35
+ },
36
+ "facterversion": "2.5.1",
37
+ "fqdn": "VAGRANT-HB9G3RD",
38
+ "hostname": "VAGRANT-HB9G3RD",
39
+ "id": "vagrant-hb9g3rd\\vagrant",
40
+ "interfaces": "Ethernet0_2",
41
+ "ipaddress_ethernet0_2": "192.168.43.174",
42
+ "ipaddress6_ethernet0_2": "fd72:b3ab:b8dd:0:f563:fac2:928c:6aa",
43
+ "macaddress_ethernet0_2": "00:0C:29:A3:53:54",
44
+ "netmask_ethernet0_2": "255.255.255.0",
45
+ "mtu_ethernet0_2": 0,
46
+ "ipaddress": "192.168.43.174",
47
+ "ipaddress6": "fd72:b3ab:b8dd:0:f563:fac2:928c:6aa",
48
+ "kernelmajversion": "10.0",
49
+ "kernelrelease": "10.0.17134",
50
+ "kernelversion": "10.0.17134",
51
+ "macaddress": "00:0C:29:A3:53:54",
52
+ "manufacturer": "Phoenix Technologies LTD",
53
+ "serialnumber": "VMware-56 4d 36 2e 2e a4 81 f9-0d 05 ae d0 e5 a3 53 54",
54
+ "productname": "VMware Virtual Platform",
55
+ "memorysize": "4.00 GB",
56
+ "memoryfree": "2.30 GB",
57
+ "memorysize_mb": "4095.49",
58
+ "memoryfree_mb": "2360.00",
59
+ "netmask": "255.255.255.0",
60
+ "network_ethernet0_2": "192.168.43.0",
61
+ "operatingsystemmajrelease": "10",
62
+ "operatingsystemrelease": "10",
63
+ "osfamily": "windows",
64
+ "path": "C:\\tools\\ruby24\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files (x86)\\vim\\vim80;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\Users\\vagrant\\AppData\\Local\\Microsoft\\WindowsApps;",
65
+ "physicalprocessorcount": 4,
66
+ "processors": {
67
+ "models": [
68
+ "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
69
+ "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
70
+ "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
71
+ "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz"
72
+ ],
73
+ "count": 4,
74
+ "physicalcount": 4
75
+ },
76
+ "processor0": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
77
+ "processor1": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
78
+ "processor2": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
79
+ "processor3": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz",
80
+ "processorcount": 4,
81
+ "ps": "tasklist.exe",
82
+ "rubyplatform": "x64-mingw32",
83
+ "rubysitedir": "C:/tools/ruby24/lib/ruby/site_ruby/2.4.0",
84
+ "rubyversion": "2.4.3",
85
+ "system32": "C:\\Windows\\system32",
86
+ "choco_install_path": "C:\\ProgramData\\chocolatey",
87
+ "system_uptime": {
88
+ "seconds": 1113359,
89
+ "hours": 309,
90
+ "days": 12,
91
+ "uptime": "12 days"
92
+ },
93
+ "timezone": "GMT Standard Time",
94
+ "uptime": "12 days",
95
+ "uptime_days": 12,
96
+ "uptime_hours": 309,
97
+ "uptime_seconds": 1113359,
98
+ "clientcert": "vagrant-hb9g3rd.lan.asio",
99
+ "clientversion": "6.0.2",
100
+ "clientnoop": false
101
+ },
102
+ "timestamp": "2018-12-10T21:43:07.468533000+00:00",
103
+ "expiration": "2018-12-10T22:13:07.468533000+00:00"
104
+ }
@@ -14,7 +14,7 @@ Feature: Create and maintain a .onceover cache
14
14
  Then the cache should exist
15
15
  And the cache should contain all controlrepo files
16
16
 
17
- Scenario: Runnone onnceover in the caching repo
17
+ Scenario: Run onceover in the caching repo
18
18
  Given control repo "caching"
19
19
  When I run onceover command "run spec --classes role::webserver"
20
20
  Then I should not see any errors
@@ -5,12 +5,12 @@ end
5
5
 
6
6
  Then(/^the cache should contain all controlrepo files/) do
7
7
  # Get all root files
8
- puts "Calculating MD5 hashes in repo"
8
+ log("Calculating MD5 hashes in repo")
9
9
  repo_digest = Cache_Helper.digest(@repo.root_folder)
10
- puts "#{repo_digest.count} MD5 hashes calculated"
11
- puts "Calculating MD5 hashes in cache"
10
+ log("#{repo_digest.count} MD5 hashes calculated")
11
+ log("Calculating MD5 hashes in cache")
12
12
  cache_digest = Cache_Helper.digest(File.join(@repo.root_folder,'.onceover/etc/puppetlabs/code/environments/production/'))
13
- puts "#{cache_digest.count} MD5 hashes calculated"
13
+ log("#{cache_digest.count} MD5 hashes calculated")
14
14
  expect(cache_digest).to include(repo_digest)
15
15
  end
16
16
 
@@ -7,6 +7,8 @@ Given(/^control repo "([^"]*)"$/) do |controlrepo_name|
7
7
  @cmd.controlrepo = @repo
8
8
  FileUtils.rm_rf @repo.root_folder
9
9
  FileUtils.mkdir_p @repo.tmp_folder
10
+
11
+ FileUtils.rm_rf "#{@repo.tmp_folder}#{controlrepo_name}"
10
12
  FileUtils.cp_r "spec/fixtures/controlrepos/#{controlrepo_name}", @repo.tmp_folder
11
13
  end
12
14
 
@@ -27,13 +29,13 @@ end
27
29
 
28
30
  When(/^I run onceover command "([^"]*)"$/) do |command|
29
31
  @cmd.command = "#{command} --debug"
30
- puts @cmd
32
+ log(@cmd)
31
33
  @cmd.run
32
34
  end
33
35
 
34
36
  When(/^I run onceover command "([^"]*)" with class "([^"]*)"$/) do |command, cls|
35
37
  @cmd.command = "#{command} --classes #{cls}"
36
- puts @cmd
38
+ log(@cmd)
37
39
  @cmd.run
38
40
  end
39
41
 
@@ -53,12 +55,12 @@ Then(/^I see help for commands: "([^"]*)"$/) do |commands|
53
55
  commands_help = @cmd.output[/COMMANDS(.*)OPTIONS/m, 1]
54
56
  commands.split(',').each do |command|
55
57
  result = commands_help.match(/^\s+#{command.strip}.+\n/)
56
- puts result.to_s if expect(result).not_to be nil
58
+ log(result.to_s) if expect(result).not_to be nil
57
59
  end
58
60
  end
59
61
 
60
62
  Then(/^I should not see any errors$/) do
61
- puts @cmd.output unless @cmd.success?
63
+ log(@cmd.output) unless @cmd.success?
62
64
  expect(@cmd.success?).to be true
63
65
  end
64
66
 
@@ -73,7 +75,7 @@ end
73
75
 
74
76
  Then(/^I should see error with message pattern "([^"]*)"$/) do |err_msg_regexp|
75
77
  expect(@cmd.success?).to be false
76
- puts @cmd.output
78
+ log(@cmd.output)
77
79
  expect(@cmd.output.match err_msg_regexp).to_not be nil
78
80
  end
79
81
 
@@ -94,17 +96,17 @@ Then(/^I should (not )?see message pattern "([^"]*)"$/) do |notword, msg_regexp|
94
96
  # If the regex matches and that's what we expected then just print a summary
95
97
  if does_match == expected_match
96
98
  if match
97
- puts match.pre_match[-output_surround..-1] + match.to_s + match.post_match[0..output_surround]
99
+ log(match.pre_match[-output_surround..-1] + match.to_s + match.post_match[0..output_surround])
98
100
  end
99
101
  else
100
- puts @cmd.output
102
+ log(@cmd.output)
101
103
  end
102
104
  end
103
105
 
104
106
  When(/^I run onceover command "([^"]*)" with \-\-puppetfile ([^"]*)$/) do |command, puppetfile|
105
107
  puppetfile_path = @repo.root_folder + puppetfile
106
108
  @cmd.command = "#{command} --puppetfile #{puppetfile_path} --debug"
107
- puts @cmd
109
+ log(@cmd)
108
110
  @cmd.run
109
111
  end
110
112
 
@@ -7,11 +7,11 @@ Then(/^I should see generated all necessary files and folders$/) do
7
7
  folders = [ 'spec/factsets', 'spec/pre_conditions'].map! { |x| @repo.root_folder + x}
8
8
 
9
9
  files.each do |file|
10
- puts file
10
+ log(file)
11
11
  expect( File.exist? file ).to be true
12
12
  end
13
13
  folders.each do |folder|
14
- puts folder
14
+ log(folder)
15
15
  expect( Dir.exist? folder ).to be true
16
16
  end
17
17
  end
@@ -95,5 +95,5 @@ Feature: Run rspec and acceptance test suites
95
95
  # This test is a full test using my controlrepo. It should remain at the end because it takes ages
96
96
  Scenario: Run advanced spec tests
97
97
  Given control repo "puppet_controlrepo"
98
- When I run onceover command "run spec -p"
98
+ When I run onceover command "run spec -p --force"
99
99
  Then I should not see any errors
@@ -123,11 +123,16 @@ class Onceover
123
123
  @profile_regex = opts[:profile_regex] ? Regexp.new(opts[:profile_regex]) : /profile[s]?:{2}/
124
124
  @tempdir = opts[:tempdir] || File.expand_path('./.onceover', @root)
125
125
  $temp_modulepath = nil
126
- manifest = opts[:manifest] || config['manifest'] || 'manifests'
127
- @manifest = File.expand_path(manifest, @root)
128
126
  @opts = opts
129
127
  logger.level = :debug if @opts[:debug]
130
128
  @@existing_controlrepo = self
129
+
130
+ # Set the manifest option to the fully expanded path if it's used,
131
+ # default to nil
132
+ manifest = opts[:manifest] || config['manifest'] || nil
133
+ if manifest
134
+ @manifest = File.expand_path(manifest, @root)
135
+ end
131
136
  end
132
137
 
133
138
 
@@ -123,6 +123,7 @@ class Onceover
123
123
  install_cmd << "--force" if force
124
124
  install_cmd << "--config #{repo.r10k_config_file}" if repo.r10k_config_file
125
125
  install_cmd << (logger.level > 0 ? "--verbose" : "--verbose debug") # Enable debugging if we're debugging
126
+ install_cmd << "--trace" if opts[:trace]
126
127
  install_cmd = install_cmd.join(' ')
127
128
  logger.debug "Running #{install_cmd} from #{prod_dir}"
128
129
  system(install_cmd)
@@ -60,6 +60,7 @@ class Onceover
60
60
  @@all
61
61
  end
62
62
 
63
+ # rubocop:disable Lint/DuplicateBranch
63
64
  def self.valid_members?(members)
64
65
  # Check that they are all the same type
65
66
  # Also catch any errors to assume it's invalid
@@ -75,5 +76,6 @@ class Onceover
75
76
  return false
76
77
  end
77
78
  end
79
+ # rubocop:enable Lint/DuplicateBranch
78
80
  end
79
81
  end
@@ -12,7 +12,9 @@ class OnceoverFormatter
12
12
  )
13
13
 
14
14
  COMPILATION_ERROR = %r{error during compilation: (?<error>.*)}
15
+ # rubocop:disable Lint/MixedRegexpCaptureTypes
15
16
  ERROR_WITH_LOCATION = %r{(?<error>.*?)\s(at )?(\((file: (?<file>.*?), )?line: (?<line>\d+)(, column: (?<column>\d+))?\))(; )?}
17
+ # rubocop:enable Lint/MixedRegexpCaptureTypes
16
18
  ERROR_WITHOUT_LOCATION = %r{(?<error>.*?)\son node}
17
19
 
18
20
  def initialize output
@@ -72,6 +74,8 @@ class OnceoverFormatter
72
74
  @output << "\n"
73
75
  end
74
76
 
77
+ # rubocop:disable Style/CombinableLoops
78
+ #
75
79
  # This method takes a notification and formats it into a hash that can be
76
80
  # printed easily
77
81
  def extract_failures notification
@@ -90,6 +94,7 @@ class OnceoverFormatter
90
94
 
91
95
  grouped
92
96
  end
97
+ # rubocop:enable Style/CombinableLoops
93
98
 
94
99
  # Extaracts data out of RSpec failres
95
100
  def extract_failure_data(fails)
@@ -309,4 +314,4 @@ class FailureCollector
309
314
  end
310
315
  }
311
316
  end
312
- end
317
+ end
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "onceover"
7
- s.version = "3.19.0"
7
+ s.version = "3.19.1"
8
8
  s.authors = ["Dylan Ratcliffe"]
9
9
  s.email = ["dylan.ratcliffe@puppet.com"]
10
10
  s.homepage = "https://github.com/dylanratcliffe/onceover"
@@ -22,7 +22,6 @@ Gem::Specification.new do |s|
22
22
  s.add_runtime_dependency 'colored', '~> 1.2'
23
23
  s.add_runtime_dependency 'cri', '>= 2.6'
24
24
  s.add_runtime_dependency 'deep_merge', '>= 1.0.0'
25
- s.add_runtime_dependency 'facter', '< 4.0.0'
26
25
  s.add_runtime_dependency 'git'
27
26
  s.add_runtime_dependency 'logging', '>= 2.0.0'
28
27
  s.add_runtime_dependency 'multi_json', '~> 1.10'
@@ -37,4 +36,8 @@ Gem::Specification.new do |s|
37
36
  s.add_runtime_dependency 'terminal-table', '>= 1.8.0'
38
37
  s.add_runtime_dependency 'versionomy', '>= 0.5.0'
39
38
 
39
+ s.add_development_dependency 'cucumber', '~> 4.1'
40
+ s.add_development_dependency 'pry', '~> 0.13.1'
41
+ s.add_development_dependency 'rubocop', '~> 1.6', '>= 1.6.1'
42
+ s.add_development_dependency 'rubygems-tasks', '~> 0.2.5'
40
43
  end
@@ -1,17 +1,17 @@
1
- forge "http://forge.puppetlabs.com"
2
- #
3
- # I want to download some modules to check if r10k feature in Onceover works correctly.
4
- #
5
-
6
- # Versions should be updated to be the latest at the time you start
7
- mod "puppetlabs/stdlib", '4.11.0'
8
-
9
- # Modules from Git
10
- # Examples: https://github.com/puppetlabs/r10k/blob/master/doc/puppetfile.mkd#examples
11
- mod 'apache',
12
- :git => 'https://github.com/puppetlabs/puppetlabs-apache',
13
- :commit => '83401079053dca11d61945bd9beef9ecf7576cbf'
14
-
15
- #mod 'apache',
16
- # :git => 'https://github.com/puppetlabs/puppetlabs-apache',
17
- # :branch => 'docs_experiment'
1
+ forge "http://forge.puppetlabs.com"
2
+ #
3
+ # I want to download some modules to check if r10k feature in Onceover works correctly.
4
+ #
5
+
6
+ # Versions should be updated to be the latest at the time you start
7
+ mod "puppetlabs/stdlib", '4.11.0'
8
+
9
+ # Modules from Git
10
+ # Examples: https://github.com/puppetlabs/r10k/blob/master/doc/puppetfile.mkd#examples
11
+ mod 'apache',
12
+ :git => 'https://github.com/puppetlabs/puppetlabs-apache',
13
+ :commit => '83401079053dca11d61945bd9beef9ecf7576cbf'
14
+
15
+ #mod 'apache',
16
+ # :git => 'https://github.com/puppetlabs/puppetlabs-apache',
17
+ # :branch => 'docs_experiment'