onceover 3.19.2 → 3.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/devcontainer.json +33 -0
  3. data/.github/workflows/tests.yaml +5 -8
  4. data/.gitignore +0 -1
  5. data/.rubocop.yml +1 -1
  6. data/.vscode/extensions.json +4 -0
  7. data/Gemfile +9 -0
  8. data/README.md +83 -2
  9. data/Rakefile +15 -1
  10. data/factsets/Windows_Server-2008r2-64.json +184 -184
  11. data/factsets/Windows_Server-2012r2-64.json +165 -165
  12. data/factsets/windows-10-64.json +104 -104
  13. data/features/factsets.feature +33 -4
  14. data/features/step_definitions/common.rb +6 -0
  15. data/features/zzz_run.feature +8 -7
  16. data/lib/onceover/cli/run.rb +1 -0
  17. data/lib/onceover/cli/show.rb +1 -1
  18. data/lib/onceover/controlrepo.rb +64 -32
  19. data/lib/onceover/deploy.rb +6 -3
  20. data/lib/onceover/node.rb +19 -2
  21. data/lib/onceover/runner.rb +1 -0
  22. data/lib/onceover/testconfig.rb +4 -2
  23. data/onceover.gemspec +4 -2
  24. data/spec/fixtures/controlrepos/caching/Puppetfile +17 -17
  25. data/spec/fixtures/controlrepos/factsets/site/role/manifests/trusted_extensions.pp +6 -0
  26. data/spec/fixtures/controlrepos/factsets/site/role/manifests/trusted_external.pp +6 -0
  27. data/spec/fixtures/controlrepos/factsets/spec/factsets/README.md +7 -0
  28. data/spec/fixtures/controlrepos/factsets/spec/factsets/centos7_notrusted.json +530 -0
  29. data/spec/fixtures/controlrepos/factsets/spec/factsets/centos7_trusted_extensions_nested.json +535 -0
  30. data/spec/fixtures/controlrepos/factsets/spec/factsets/centos7_trusted_extensions_top.json +533 -0
  31. data/spec/fixtures/controlrepos/factsets/spec/factsets/centos7_trusted_external_nested.json +537 -0
  32. data/spec/fixtures/controlrepos/factsets/spec/factsets/centos7_trusted_external_top.json +535 -0
  33. data/templates/test_spec.rb.erb +4 -0
  34. metadata +22 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b79a11b26d7a5dda46fa393b735200513381906e01ec25c4b79a86a8d4661671
4
- data.tar.gz: 33db007020dbaf216fcbfe243295e14a98915f532b8e50d1e8568265a7ca6727
3
+ metadata.gz: 4efb9fe2eee59809e38c373cbc31ea99eeb314b0ddd631b9242789da7174609c
4
+ data.tar.gz: 0a4186e296c4d0cf3eb99ef4f5214d110622de95e8037138bb9e1fb66d45d1d4
5
5
  SHA512:
6
- metadata.gz: f02b8c494b5185124e21b47aba9c2618bb3f6a08f7b2de6a9e70e48ef018ae8528d00aee814b7712ec7a2b5b9a72616f79400882171086f0f96fa0d9ff0a0e58
7
- data.tar.gz: 6f1a0e0ea544f357514fbb56328b3a494caaf7e3dc33b96812766bd866ced3503b399a8aca1480ff6a253fef79e5284d4a27e1ecef4800eddf2ac54520286f82
6
+ metadata.gz: e3bdc3f4114ddd8291a798c73585677a2855522d63d425d55d19a8a47c0ea4a9dbd7d31544fce7554133076a5be82779a4ffeffc6650e8f04fbc5c43d76847e5
7
+ data.tar.gz: 06ef6823ba3371f6f259e9c4f85ed97d17f623297a368baa2dc0cf9bc9c3255162244a27b32e3376958dbe522e642850450a562ff4b648af04b04cb8632e9537
@@ -0,0 +1,33 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/debian
3
+ {
4
+ "name": "Debian",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "image": "mcr.microsoft.com/devcontainers/base:bullseye",
7
+ "features": {
8
+ "ghcr.io/devcontainers/features/ruby:1": {},
9
+ "ghcr.io/devcontainers/features/github-cli:1": {}
10
+ },
11
+
12
+ "postAttachCommand": "bundle",
13
+ "customizations": {
14
+ "vscode": {
15
+ "extensions": [
16
+ "castwide.ruby-debug",
17
+ "CucumberOpen.cucumber-official"
18
+ ]
19
+ }
20
+ }
21
+
22
+ // Features to add to the dev container. More info: https://containers.dev/features.
23
+ // "features": {},
24
+
25
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
26
+ // "forwardPorts": [],
27
+
28
+ // Configure tool-specific properties.
29
+ // "customizations": {},
30
+
31
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
32
+ // "remoteUser": "root"
33
+ }
@@ -8,20 +8,17 @@ jobs:
8
8
  fail-fast: false
9
9
  matrix:
10
10
  os:
11
- - windows-2016
11
+ - windows-latest
12
12
  - ubuntu-latest
13
13
  - macos-latest
14
14
  puppet:
15
- - "~> 5.0"
16
- - "~> 6.0"
17
15
  - "~> 7.0"
16
+ - "~> 8.0"
18
17
  include:
19
- - puppet: "~> 5.0"
20
- ruby: 2.4
21
- - puppet: "~> 6.0"
22
- ruby: 2.5
23
18
  - puppet: "~> 7.0"
24
19
  ruby: 2.7
20
+ - puppet: "~> 8.0"
21
+ ruby: 3.2
25
22
 
26
23
  runs-on: ${{ matrix.os }}
27
24
  steps:
@@ -33,7 +30,7 @@ jobs:
33
30
  env:
34
31
  PUPPET_VERSION: ${{ matrix.puppet }}
35
32
  - name: Set long paths on Windows
36
- if: ${{ matrix.os == 'windows-2016' }}
33
+ if: ${{ matrix.os == 'windows-latest' }}
37
34
  run: Set-ItemProperty 'HKLM:\System\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -value 1
38
35
  - env:
39
36
  PUPPET_VERSION: ${{ matrix.puppet }}
data/.gitignore CHANGED
@@ -15,5 +15,4 @@ vendor
15
15
  /tags
16
16
 
17
17
  .cucumber
18
- .vscode
19
18
  .idea
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.4 # this should match the oldest version in .github/workflows/tests.yaml's matrix
2
+ TargetRubyVersion: 2.4 # this should match the oldest version in .github/workflows/tests.yaml's matrix
3
3
  NewCops: enable
4
4
  Include:
5
5
  - "lib/**/*.rb"
@@ -0,0 +1,4 @@
1
+ {
2
+ "recommendations": [
3
+ ]
4
+ }
data/Gemfile CHANGED
@@ -8,6 +8,15 @@ if ENV['PUPPET_VERSION']
8
8
  gem 'puppet', ENV['PUPPET_VERSION']
9
9
  end
10
10
 
11
+ group :test do
12
+ # Required for the final controlrepo tests
13
+ gem 'toml-rb'
14
+ end
15
+
16
+ group :development do
17
+ gem 'pry'
18
+ end
19
+
11
20
  # Evaluate Gemfile.local if it exists
12
21
  if File.exist? "#{__FILE__}.local"
13
22
  eval(File.read("#{__FILE__}.local"), binding)
data/README.md CHANGED
@@ -146,7 +146,7 @@ Hopefully this config file will be fairly self explanatory once you see it, but
146
146
 
147
147
  In this section we can add functions that we want to mock when running spec tests.
148
148
 
149
- Each function takes the `return` arguments, e.g.
149
+ Each function takes the `returns` arguments, e.g.
150
150
 
151
151
  ```yaml
152
152
  functions:
@@ -330,6 +330,18 @@ puppet facts > fact_set_name.json
330
330
 
331
331
  Its recommended to run this on each of the types of nodes that you run in your infrastructure to have good coverage.
332
332
 
333
+ If you are using [Trusted Facts](#trusted-facts) or [Trusted External Data](#trusted-external-data) and can use the [PE client tools](https://puppet.com/docs/pe/latest/installing_pe_client_tools.html) you can generate a factset which contains this information by running:
334
+
335
+ ```shell
336
+ puppet facts --terminus puppetdb > fact_set_name.json
337
+ ```
338
+
339
+ or
340
+
341
+ ```shell
342
+ puppet facts --terminus puppetdb <node certname> > fact_set_name.json
343
+ ```
344
+
333
345
  Factsets are named based on their filename, i.e. `myfactset` in `onceover.yaml` refers `spec/factsets/myfactset.json`
334
346
 
335
347
  #### Trusted Facts
@@ -351,6 +363,73 @@ You can add trusted facts to the factsets by creating a new section called trust
351
363
 
352
364
  Notice that the `extensions` part is implied. The first fact in that example translates to `$trusted['extensions']['pp_role']` in Puppet code.
353
365
 
366
+ Alternatively, if you generated your factset using the PE client tools your trusted facts will be nested under the **values** hash. For example:
367
+
368
+ ```json
369
+ {
370
+ "name": "node.puppetlabs.net",
371
+ "values": {
372
+ "aio_agent_build": "1.10.4",
373
+ "aio_agent_version": "1.10.4",
374
+ "architecture": "x86_64",
375
+ "trusted": {
376
+ "extensions": {
377
+ "pp_role": "agent",
378
+ "pp_datacenter": "puppet"
379
+ }
380
+ }
381
+ ```
382
+
383
+ In this case, you're all set and onceover will auto-magically pick those up for you.
384
+
385
+ **Note**: The top level `trusted` hash takes precidence over the `trusted[extensions]` hash nested under `values`. Meaning that if you have any specified at the top level, any nested ones will not be considered. So pick **ONE** method and stick with that.
386
+
387
+ #### Trusted External Data
388
+
389
+ **Note:** This feature requires `rspec-puppet` >= 2.8.0.
390
+
391
+ You can add trusted external data to the factsets by creating a new section called trusted_external:
392
+
393
+ ```json
394
+ {
395
+ "name": "node.puppetlabs.net",
396
+ "trusted_external": {
397
+ "example_forager": {
398
+ "globalRegion": "EMEA",
399
+ "serverOwner": "John Doe"
400
+ }
401
+ },
402
+ "values": {
403
+ "aio_agent_build": "1.10.4",
404
+ "aio_agent_version": "1.10.4",
405
+ "architecture": "x86_64",
406
+ ```
407
+
408
+ Notice that the `external` part is implied, though the foragers name will still need to be provided. The first fact in that example translates to `$trusted['external']['example_forager']['globalRegion']` in Puppet code.
409
+
410
+ Alternatively, if you generated your factset using the PE client tools your trusted external data will be nested under the **values** hash. For example:
411
+
412
+ ```json
413
+ {
414
+ "name": "node.puppetlabs.net",
415
+ "values": {
416
+ "aio_agent_build": "1.10.4",
417
+ "aio_agent_version": "1.10.4",
418
+ "architecture": "x86_64",
419
+ "trusted": {
420
+ "external": {
421
+ "example_forager": {
422
+ "globalRegion": "EMEA",
423
+ "serverOwner": "John Doe"
424
+ }
425
+ }
426
+ }
427
+ ```
428
+
429
+ In this case, you're all set and onceover will auto-magically pick those up for you.
430
+
431
+ **Note**: The top level `trusted_external` hash takes precidence over the `trusted[external]` hash nested under `values`. Meaning that if you have any specified at the top level, any nested ones will not be considered. So pick **ONE** method and stick with that.
432
+
354
433
  ### Hiera
355
434
 
356
435
  If you have hiera data inside your controlrepo (or somewhere else) `onceover` can be configured to use it.
@@ -587,10 +666,12 @@ require 'spec_helper'
587
666
  require 'onceover/controlrepo'
588
667
  require 'helpers/shared_examples'
589
668
 
590
- Onceover::Controlrepo.new.spec_tests do |class_name,node_name,facts,pre_conditions|
669
+ Onceover::Controlrepo.new.spec_tests do |class_name, node_name, facts, trusted_facts, trusted_external_data, pre_conditions|
591
670
  describe class_name do
592
671
  context "on #{node_name}" do
593
672
  let(:facts) { facts }
673
+ let(:trusted_facts) { trusted_facts }
674
+ let(:trusted_external_data) { trusted_external_data }
594
675
  let(:pre_condition) { pre_conditions }
595
676
 
596
677
  it_behaves_like 'soe'
data/Rakefile CHANGED
@@ -2,6 +2,7 @@ require 'rubygems/tasks'
2
2
  require 'rspec/core/rake_task'
3
3
  require 'cucumber/rake/task'
4
4
  require 'rubocop/rake_task'
5
+ require 'puppet/version'
5
6
  Gem::Tasks.new
6
7
 
7
8
  def windows?
@@ -18,7 +19,20 @@ RSpec::Core::RakeTask.new(:acceptance) do |t|
18
19
  t.rspec_opts = '--pattern spec/acceptance/**/*_spec.rb'
19
20
  end
20
21
 
21
- Cucumber::Rake::Task.new
22
+ # Cucumber task that intelligently skips test tagged with a minimum puppet
23
+ # version in the format "@puppet6"
24
+ Cucumber::Rake::Task.new(:cucumber) do |t|
25
+ major_version = Gem::Version.new(Puppet.version).segments[0]
26
+
27
+ # Create a list of tags to skip based on the next 3 major versions
28
+ skip_tags = ((major_version + 1)..(major_version + 3)).map { |v| "@puppet#{v}"}
29
+
30
+ # Generate logic string
31
+ skip_string = "not #{skip_tags.join(' and not ')}"
32
+
33
+ t.cucumber_opts = "--tags \"#{skip_string}\"" # Any valid command line option can go here.
34
+ end
35
+
22
36
 
23
37
  task default: :full_tests
24
38
 
@@ -1,184 +1,184 @@
1
- {
2
- "name": "server2008r2a.pdx.puppetlabs.demo",
3
- "values": {
4
- "agent_specified_environment": "production",
5
- "aio_agent_build": "1.2.2",
6
- "aio_agent_version": "1.2.2",
7
- "architecture": "x64",
8
- "common_appdata": "C:\\ProgramData",
9
- "concat_basedir": "C:/ProgramData/PuppetLabs/puppet/cache/concat",
10
- "custom_auth_conf": "false",
11
- "datacenter": "portland",
12
- "dhcp_servers": {
13
- "Local Area Connection": "10.0.2.2"
14
- },
15
- "dmi": {
16
- "manufacturer": "innotek GmbH",
17
- "product": {
18
- "name": "VirtualBox",
19
- "serial_number": "0"
20
- }
21
- },
22
- "domain": "pdx.puppetlabs.demo",
23
- "env_windows_installdir": "C:\\Program Files\\Puppet Labs\\Puppet",
24
- "facterversion": "3.0.2",
25
- "fqdn": "server2008r2a.pdx.puppetlabs.demo",
26
- "hardwareisa": "x64",
27
- "hardwaremodel": "x86_64",
28
- "hostname": "server2008r2a",
29
- "id": "SERVER2008R2A\\vagrant",
30
- "identity": {
31
- "user": "SERVER2008R2A\\vagrant"
32
- },
33
- "iis_version": "Get-ItemProperty : Cannot find path 'HKLM:\\SOFTWARE\\Microsoft\\InetStp\\' because it does not exist.\nAt line:1 char:18\n+ (Get-ItemProperty <<<< HKLM:\\SOFTWARE\\Microsoft\\InetStp\\ -Name VersionString).VersionString.SubString(8,3)\n + CategoryInfo : ObjectNotFound: (HKLM:\\SOFTWARE\\Microsoft\\InetStp\\:String) [Get-ItemProperty], ItemNotFo \n undException\n + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand\n \nYou cannot call a method on a null-valued expression.\nAt line:1 char:97\n+ (Get-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\InetStp\\ -Name VersionString).VersionString.SubString <<<< (8,3)\n + CategoryInfo : InvalidOperation: (SubString:String) [], RuntimeException\n + FullyQualifiedErrorId : InvokeMethodOnNull\n \n",
34
- "interfaces": "Local Area Connection 2,Local Area Connection",
35
- "ipaddress": "10.20.1.101",
36
- "ipaddress6": "fe80::2c34:c353:1aaa:a872%13",
37
- "ipaddress6_Local Area Connection": "fe80::50f8:86eb:f103:75b%12",
38
- "ipaddress6_Local Area Connection 2": "fe80::2c34:c353:1aaa:a872%13",
39
- "ipaddress_Local Area Connection": "10.0.2.15",
40
- "ipaddress_Local Area Connection 2": "10.20.1.101",
41
- "is_admin": true,
42
- "is_pe": false,
43
- "is_virtual": true,
44
- "kernel": "windows",
45
- "kernelmajversion": "6.1",
46
- "kernelrelease": "6.1.7600",
47
- "kernelversion": "6.1.7600",
48
- "macaddress": "08:00:27:7B:C7:40",
49
- "macaddress_Local Area Connection": "08:00:27:AB:52:FB",
50
- "macaddress_Local Area Connection 2": "08:00:27:7B:C7:40",
51
- "manufacturer": "innotek GmbH",
52
- "memory": {
53
- "system": {
54
- "available": "448.14 MiB",
55
- "available_bytes": 469909504,
56
- "capacity": "56.22%",
57
- "total": "1023.55 MiB",
58
- "total_bytes": 1073274880,
59
- "used": "575.41 MiB",
60
- "used_bytes": 603365376
61
- }
62
- },
63
- "memoryfree": "448.14 MiB",
64
- "memoryfree_mb": 448.140625,
65
- "memorysize": "1023.55 MiB",
66
- "memorysize_mb": 1023.5546875,
67
- "mtu_Local Area Connection": 1500,
68
- "mtu_Local Area Connection 2": 1500,
69
- "mysql_server_id": 8583088,
70
- "netmask": "255.255.255.0",
71
- "netmask6": "ffff:ffff:ffff:ffff::",
72
- "netmask6_Local Area Connection": "ffff:ffff:ffff:ffff::",
73
- "netmask6_Local Area Connection 2": "ffff:ffff:ffff:ffff::",
74
- "netmask_Local Area Connection": "255.255.255.0",
75
- "netmask_Local Area Connection 2": "255.255.255.0",
76
- "network": "10.20.1.0",
77
- "network6": "fe80::%13",
78
- "network6_Local Area Connection": "fe80::%12",
79
- "network6_Local Area Connection 2": "fe80::%13",
80
- "network_Local Area Connection": "10.0.2.0",
81
- "network_Local Area Connection 2": "10.20.1.0",
82
- "networking": {
83
- "domain": "pdx.puppetlabs.demo",
84
- "fqdn": "server2008r2a.pdx.puppetlabs.demo",
85
- "hostname": "server2008r2a",
86
- "interfaces": {
87
- "Local Area Connection": {
88
- "dhcp": "10.0.2.2",
89
- "ip": "10.0.2.15",
90
- "ip6": "fe80::50f8:86eb:f103:75b%12",
91
- "mac": "08:00:27:AB:52:FB",
92
- "mtu": 1500,
93
- "netmask": "255.255.255.0",
94
- "netmask6": "ffff:ffff:ffff:ffff::",
95
- "network": "10.0.2.0",
96
- "network6": "fe80::%12"
97
- },
98
- "Local Area Connection 2": {
99
- "ip": "10.20.1.101",
100
- "ip6": "fe80::2c34:c353:1aaa:a872%13",
101
- "mac": "08:00:27:7B:C7:40",
102
- "mtu": 1500,
103
- "netmask": "255.255.255.0",
104
- "netmask6": "ffff:ffff:ffff:ffff::",
105
- "network": "10.20.1.0",
106
- "network6": "fe80::%13"
107
- }
108
- },
109
- "ip": "10.20.1.101",
110
- "ip6": "fe80::2c34:c353:1aaa:a872%13",
111
- "mac": "08:00:27:7B:C7:40",
112
- "mtu": 1500,
113
- "netmask": "255.255.255.0",
114
- "netmask6": "ffff:ffff:ffff:ffff::",
115
- "network": "10.20.1.0",
116
- "network6": "fe80::%13"
117
- },
118
- "operatingsystem": "windows",
119
- "operatingsystemmajrelease": "2008 R2",
120
- "operatingsystemrelease": "2008 R2",
121
- "os": {
122
- "architecture": "x64",
123
- "family": "windows",
124
- "hardware": "x86_64",
125
- "name": "windows",
126
- "release": {
127
- "full": "2008 R2",
128
- "major": "2008 R2"
129
- },
130
- "windows": {
131
- "system32": "C:\\Windows\\system32"
132
- }
133
- },
134
- "osfamily": "windows",
135
- "path": "C:/Program Files/Puppet Labs/Puppet/facter/bin;C:\\Program Files\\Puppet Labs\\Puppet\\puppet\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\facter\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\hiera\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\mcollective\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\sys\\ruby\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\sys\\tools\\bin;%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\ProgramData\\chocolatey\\bin;",
136
- "pe_concat_basedir": "C:/ProgramData/PuppetLabs/puppet/cache/pe_concat",
137
- "physicalprocessorcount": 1,
138
- "platform_symlink_writable": false,
139
- "processor0": "Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz",
140
- "processorcount": 1,
141
- "processors": {
142
- "count": 1,
143
- "isa": "x64",
144
- "models": [
145
- "Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz"
146
- ],
147
- "physicalcount": 1
148
- },
149
- "productname": "VirtualBox",
150
- "puppet_files_dir_present": false,
151
- "puppet_vardir": "C:/ProgramData/PuppetLabs/puppet/cache",
152
- "puppetversion": "4.2.1",
153
- "ruby": {
154
- "platform": "x64-mingw32",
155
- "sitedir": "C:/Program Files/Puppet Labs/Puppet/sys/ruby/lib/ruby/site_ruby/2.1.0",
156
- "version": "2.1.6"
157
- },
158
- "rubyplatform": "x64-mingw32",
159
- "rubysitedir": "C:/Program Files/Puppet Labs/Puppet/sys/ruby/lib/ruby/site_ruby/2.1.0",
160
- "rubyversion": "2.1.6",
161
- "serialnumber": "0",
162
- "staging_http_get": "powershell",
163
- "staging_windir": "C:\\ProgramData\\staging",
164
- "system32": "C:\\Windows\\system32",
165
- "choco_install_path": "C:\\ProgramData\\chocolatey",
166
- "system_uptime": {
167
- "days": 0,
168
- "hours": 0,
169
- "seconds": 266,
170
- "uptime": "0:04 hours"
171
- },
172
- "timezone": "Pacific Daylight Time",
173
- "uptime": "0:04 hours",
174
- "uptime_days": 0,
175
- "uptime_hours": 0,
176
- "uptime_seconds": 266,
177
- "virtual": "virtualbox",
178
- "clientcert": "server2008r2a.pdx.puppetlabs.demo",
179
- "clientversion": "4.2.1",
180
- "clientnoop": false
181
- },
182
- "timestamp": "2015-09-27T23:37:41.296750000-07:00",
183
- "expiration": "2015-09-28T00:07:41.296750000-07:00"
184
- }
1
+ {
2
+ "name": "server2008r2a.pdx.puppetlabs.demo",
3
+ "values": {
4
+ "agent_specified_environment": "production",
5
+ "aio_agent_build": "1.2.2",
6
+ "aio_agent_version": "1.2.2",
7
+ "architecture": "x64",
8
+ "common_appdata": "C:\\ProgramData",
9
+ "concat_basedir": "C:/ProgramData/PuppetLabs/puppet/cache/concat",
10
+ "custom_auth_conf": "false",
11
+ "datacenter": "portland",
12
+ "dhcp_servers": {
13
+ "Local Area Connection": "10.0.2.2"
14
+ },
15
+ "dmi": {
16
+ "manufacturer": "innotek GmbH",
17
+ "product": {
18
+ "name": "VirtualBox",
19
+ "serial_number": "0"
20
+ }
21
+ },
22
+ "domain": "pdx.puppetlabs.demo",
23
+ "env_windows_installdir": "C:\\Program Files\\Puppet Labs\\Puppet",
24
+ "facterversion": "3.0.2",
25
+ "fqdn": "server2008r2a.pdx.puppetlabs.demo",
26
+ "hardwareisa": "x64",
27
+ "hardwaremodel": "x86_64",
28
+ "hostname": "server2008r2a",
29
+ "id": "SERVER2008R2A\\vagrant",
30
+ "identity": {
31
+ "user": "SERVER2008R2A\\vagrant"
32
+ },
33
+ "iis_version": "Get-ItemProperty : Cannot find path 'HKLM:\\SOFTWARE\\Microsoft\\InetStp\\' because it does not exist.\nAt line:1 char:18\n+ (Get-ItemProperty <<<< HKLM:\\SOFTWARE\\Microsoft\\InetStp\\ -Name VersionString).VersionString.SubString(8,3)\n + CategoryInfo : ObjectNotFound: (HKLM:\\SOFTWARE\\Microsoft\\InetStp\\:String) [Get-ItemProperty], ItemNotFo \n undException\n + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand\n \nYou cannot call a method on a null-valued expression.\nAt line:1 char:97\n+ (Get-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\InetStp\\ -Name VersionString).VersionString.SubString <<<< (8,3)\n + CategoryInfo : InvalidOperation: (SubString:String) [], RuntimeException\n + FullyQualifiedErrorId : InvokeMethodOnNull\n \n",
34
+ "interfaces": "Local Area Connection 2,Local Area Connection",
35
+ "ipaddress": "10.20.1.101",
36
+ "ipaddress6": "fe80::2c34:c353:1aaa:a872%13",
37
+ "ipaddress6_Local Area Connection": "fe80::50f8:86eb:f103:75b%12",
38
+ "ipaddress6_Local Area Connection 2": "fe80::2c34:c353:1aaa:a872%13",
39
+ "ipaddress_Local Area Connection": "10.0.2.15",
40
+ "ipaddress_Local Area Connection 2": "10.20.1.101",
41
+ "is_admin": true,
42
+ "is_pe": false,
43
+ "is_virtual": true,
44
+ "kernel": "windows",
45
+ "kernelmajversion": "6.1",
46
+ "kernelrelease": "6.1.7600",
47
+ "kernelversion": "6.1.7600",
48
+ "macaddress": "08:00:27:7B:C7:40",
49
+ "macaddress_Local Area Connection": "08:00:27:AB:52:FB",
50
+ "macaddress_Local Area Connection 2": "08:00:27:7B:C7:40",
51
+ "manufacturer": "innotek GmbH",
52
+ "memory": {
53
+ "system": {
54
+ "available": "448.14 MiB",
55
+ "available_bytes": 469909504,
56
+ "capacity": "56.22%",
57
+ "total": "1023.55 MiB",
58
+ "total_bytes": 1073274880,
59
+ "used": "575.41 MiB",
60
+ "used_bytes": 603365376
61
+ }
62
+ },
63
+ "memoryfree": "448.14 MiB",
64
+ "memoryfree_mb": 448.140625,
65
+ "memorysize": "1023.55 MiB",
66
+ "memorysize_mb": 1023.5546875,
67
+ "mtu_Local Area Connection": 1500,
68
+ "mtu_Local Area Connection 2": 1500,
69
+ "mysql_server_id": 8583088,
70
+ "netmask": "255.255.255.0",
71
+ "netmask6": "ffff:ffff:ffff:ffff::",
72
+ "netmask6_Local Area Connection": "ffff:ffff:ffff:ffff::",
73
+ "netmask6_Local Area Connection 2": "ffff:ffff:ffff:ffff::",
74
+ "netmask_Local Area Connection": "255.255.255.0",
75
+ "netmask_Local Area Connection 2": "255.255.255.0",
76
+ "network": "10.20.1.0",
77
+ "network6": "fe80::%13",
78
+ "network6_Local Area Connection": "fe80::%12",
79
+ "network6_Local Area Connection 2": "fe80::%13",
80
+ "network_Local Area Connection": "10.0.2.0",
81
+ "network_Local Area Connection 2": "10.20.1.0",
82
+ "networking": {
83
+ "domain": "pdx.puppetlabs.demo",
84
+ "fqdn": "server2008r2a.pdx.puppetlabs.demo",
85
+ "hostname": "server2008r2a",
86
+ "interfaces": {
87
+ "Local Area Connection": {
88
+ "dhcp": "10.0.2.2",
89
+ "ip": "10.0.2.15",
90
+ "ip6": "fe80::50f8:86eb:f103:75b%12",
91
+ "mac": "08:00:27:AB:52:FB",
92
+ "mtu": 1500,
93
+ "netmask": "255.255.255.0",
94
+ "netmask6": "ffff:ffff:ffff:ffff::",
95
+ "network": "10.0.2.0",
96
+ "network6": "fe80::%12"
97
+ },
98
+ "Local Area Connection 2": {
99
+ "ip": "10.20.1.101",
100
+ "ip6": "fe80::2c34:c353:1aaa:a872%13",
101
+ "mac": "08:00:27:7B:C7:40",
102
+ "mtu": 1500,
103
+ "netmask": "255.255.255.0",
104
+ "netmask6": "ffff:ffff:ffff:ffff::",
105
+ "network": "10.20.1.0",
106
+ "network6": "fe80::%13"
107
+ }
108
+ },
109
+ "ip": "10.20.1.101",
110
+ "ip6": "fe80::2c34:c353:1aaa:a872%13",
111
+ "mac": "08:00:27:7B:C7:40",
112
+ "mtu": 1500,
113
+ "netmask": "255.255.255.0",
114
+ "netmask6": "ffff:ffff:ffff:ffff::",
115
+ "network": "10.20.1.0",
116
+ "network6": "fe80::%13"
117
+ },
118
+ "operatingsystem": "windows",
119
+ "operatingsystemmajrelease": "2008 R2",
120
+ "operatingsystemrelease": "2008 R2",
121
+ "os": {
122
+ "architecture": "x64",
123
+ "family": "windows",
124
+ "hardware": "x86_64",
125
+ "name": "windows",
126
+ "release": {
127
+ "full": "2008 R2",
128
+ "major": "2008 R2"
129
+ },
130
+ "windows": {
131
+ "system32": "C:\\Windows\\system32"
132
+ }
133
+ },
134
+ "osfamily": "windows",
135
+ "path": "C:/Program Files/Puppet Labs/Puppet/facter/bin;C:\\Program Files\\Puppet Labs\\Puppet\\puppet\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\facter\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\hiera\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\mcollective\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\sys\\ruby\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\sys\\tools\\bin;%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\ProgramData\\chocolatey\\bin;",
136
+ "pe_concat_basedir": "C:/ProgramData/PuppetLabs/puppet/cache/pe_concat",
137
+ "physicalprocessorcount": 1,
138
+ "platform_symlink_writable": false,
139
+ "processor0": "Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz",
140
+ "processorcount": 1,
141
+ "processors": {
142
+ "count": 1,
143
+ "isa": "x64",
144
+ "models": [
145
+ "Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz"
146
+ ],
147
+ "physicalcount": 1
148
+ },
149
+ "productname": "VirtualBox",
150
+ "puppet_files_dir_present": false,
151
+ "puppet_vardir": "C:/ProgramData/PuppetLabs/puppet/cache",
152
+ "puppetversion": "4.2.1",
153
+ "ruby": {
154
+ "platform": "x64-mingw32",
155
+ "sitedir": "C:/Program Files/Puppet Labs/Puppet/sys/ruby/lib/ruby/site_ruby/2.1.0",
156
+ "version": "2.1.6"
157
+ },
158
+ "rubyplatform": "x64-mingw32",
159
+ "rubysitedir": "C:/Program Files/Puppet Labs/Puppet/sys/ruby/lib/ruby/site_ruby/2.1.0",
160
+ "rubyversion": "2.1.6",
161
+ "serialnumber": "0",
162
+ "staging_http_get": "powershell",
163
+ "staging_windir": "C:\\ProgramData\\staging",
164
+ "system32": "C:\\Windows\\system32",
165
+ "choco_install_path": "C:\\ProgramData\\chocolatey",
166
+ "system_uptime": {
167
+ "days": 0,
168
+ "hours": 0,
169
+ "seconds": 266,
170
+ "uptime": "0:04 hours"
171
+ },
172
+ "timezone": "Pacific Daylight Time",
173
+ "uptime": "0:04 hours",
174
+ "uptime_days": 0,
175
+ "uptime_hours": 0,
176
+ "uptime_seconds": 266,
177
+ "virtual": "virtualbox",
178
+ "clientcert": "server2008r2a.pdx.puppetlabs.demo",
179
+ "clientversion": "4.2.1",
180
+ "clientnoop": false
181
+ },
182
+ "timestamp": "2015-09-27T23:37:41.296750000-07:00",
183
+ "expiration": "2015-09-28T00:07:41.296750000-07:00"
184
+ }