facter 4.0.23 → 4.0.24
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 +4 -4
- data/CHANGELOG.md +11 -0
- data/VERSION +1 -1
- data/lib/facts/linux/virtual.rb +10 -1
- data/lib/resolvers/virt_what.rb +64 -0
- data/lib/resolvers/vmware.rb +29 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a87a5fda1ec732928ca868e4df803b7d0b9d68d95f1efd366eeb6497550beff
|
4
|
+
data.tar.gz: b324cde69b928d3a21b43d4f40a973b0086a56eba1a30eb5392f1d515513ee52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd84d157b62b33d1425d971eed5b94dd3c0b4f10e98755bb417b511c4baf5a8f2b48ee53c2ec2a80c7052023b324303ea965231a8bebaa66ca0c9e4553425d84
|
7
|
+
data.tar.gz: 8f9ff642fd2214cc77e6e8f7c21287b2265f0a604eba6b707a201e9eef2e77215451562e388f9ef017bc9917219bf58d377bf6e79150cbfa52403569e9ecb23c
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
|
2
2
|
|
3
|
+
## [4.0.24](https://github.com/puppetlabs/facter-ng/tree/4.0.24) (2020-05-26)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/puppetlabs/facter-ng/compare/4.0.23...4.0.24)
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- \(FACT-2605\) Add vmware resolver [\#525](https://github.com/puppetlabs/facter-ng/pull/525) ([oanatmaria](https://github.com/oanatmaria))
|
10
|
+
- \(FACT-2604\) Add virt-what resolver [\#523](https://github.com/puppetlabs/facter-ng/pull/523) ([oanatmaria](https://github.com/oanatmaria))
|
11
|
+
|
12
|
+
|
13
|
+
|
3
14
|
## [4.0.23](https://github.com/puppetlabs/facter-ng/tree/4.0.23) (2020-05-22)
|
4
15
|
|
5
16
|
[Full Changelog](https://github.com/puppetlabs/facter-ng/compare/4.0.22...4.0.23)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.0.
|
1
|
+
4.0.24
|
data/lib/facts/linux/virtual.rb
CHANGED
@@ -6,7 +6,8 @@ module Facts
|
|
6
6
|
FACT_NAME = 'virtual'
|
7
7
|
|
8
8
|
def call_the_resolver
|
9
|
-
fact_value = check_docker_lxc || check_gce
|
9
|
+
fact_value = check_docker_lxc || check_gce || retrieve_from_virt_what || check_vmware
|
10
|
+
|
10
11
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
11
12
|
end
|
12
13
|
|
@@ -18,6 +19,14 @@ module Facts
|
|
18
19
|
def check_docker_lxc
|
19
20
|
Facter::Resolvers::DockerLxc.resolve(:vm)
|
20
21
|
end
|
22
|
+
|
23
|
+
def check_vmware
|
24
|
+
Facter::Resolvers::Vmware.resolve(:vm)
|
25
|
+
end
|
26
|
+
|
27
|
+
def retrieve_from_virt_what
|
28
|
+
Facter::Resolvers::VirtWhat.resolve(:vm)
|
29
|
+
end
|
21
30
|
end
|
22
31
|
end
|
23
32
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
class VirtWhat < BaseResolver
|
6
|
+
@semaphore = Mutex.new
|
7
|
+
@fact_list ||= {}
|
8
|
+
|
9
|
+
class << self
|
10
|
+
private
|
11
|
+
|
12
|
+
def post_resolve(fact_name)
|
13
|
+
@fact_list.fetch(fact_name) { retrieve_from_virt_what(fact_name) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def retrieve_from_virt_what(fact_name)
|
17
|
+
output = Facter::Core::Execution.execute('virt-what', logger: log)
|
18
|
+
|
19
|
+
@fact_list[:vm] = determine_xen(output)
|
20
|
+
@fact_list[:vm] ||= determine_other(output)
|
21
|
+
retrieve_vserver unless @fact_list[:vserver]
|
22
|
+
|
23
|
+
@fact_list[fact_name]
|
24
|
+
end
|
25
|
+
|
26
|
+
def determine_xen(output)
|
27
|
+
xen_info = /^xen\n.*/.match(output)
|
28
|
+
|
29
|
+
return unless xen_info
|
30
|
+
|
31
|
+
xen_info = xen_info.to_s
|
32
|
+
return 'xenu' if xen_info =~ /xen-domu/
|
33
|
+
return 'xenhvm' if xen_info =~ /xen-hvm/
|
34
|
+
return 'xen0' if xen_info =~ /xen-dom0/
|
35
|
+
end
|
36
|
+
|
37
|
+
def determine_other(output)
|
38
|
+
other_vm = output.split("\n").first
|
39
|
+
return unless other_vm
|
40
|
+
|
41
|
+
return 'zlinux' if other_vm =~ /ibm_systemz/
|
42
|
+
return retrieve_vserver if other_vm =~ /linux_vserver/
|
43
|
+
|
44
|
+
other_vm
|
45
|
+
end
|
46
|
+
|
47
|
+
def retrieve_vserver
|
48
|
+
proc_status_content = Facter::Util::FileHelper.safe_readlines('/proc/self/status', nil)
|
49
|
+
return unless proc_status_content
|
50
|
+
|
51
|
+
proc_status_content.each do |line|
|
52
|
+
parts = line.split("\s")
|
53
|
+
next unless parts.size.equal?(2)
|
54
|
+
|
55
|
+
next unless parts[0] =~ /^s_context:|^VxID:/
|
56
|
+
return @fact_list[:vserver] = 'vserver_host' if parts[1] == '0'
|
57
|
+
|
58
|
+
return @fact_list[:vserver] = 'vserver'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
class Vmware < BaseResolver
|
6
|
+
@semaphore = Mutex.new
|
7
|
+
@fact_list ||= {}
|
8
|
+
|
9
|
+
class << self
|
10
|
+
private
|
11
|
+
|
12
|
+
def post_resolve(fact_name)
|
13
|
+
@fact_list.fetch(fact_name) { vmware_command(fact_name) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def vmware_command(fact_name)
|
17
|
+
output = Facter::Core::Execution.execute('vmware -v', logger: log)
|
18
|
+
return if output.empty?
|
19
|
+
|
20
|
+
parts = output.split("\s")
|
21
|
+
return unless parts.size.equal?(2)
|
22
|
+
|
23
|
+
@fact_list[:vm] = "#{parts[0].downcase}_#{parts[1].downcase}"
|
24
|
+
@fact_list[fact_name]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -733,6 +733,8 @@ files:
|
|
733
733
|
- lib/resolvers/utils/fingerprint.rb
|
734
734
|
- lib/resolvers/utils/ssh.rb
|
735
735
|
- lib/resolvers/utils/ssh_helper.rb
|
736
|
+
- lib/resolvers/virt_what.rb
|
737
|
+
- lib/resolvers/vmware.rb
|
736
738
|
- lib/resolvers/windows/dmi_bios_resolver.rb
|
737
739
|
- lib/resolvers/windows/dmi_computersystem_resolver.rb
|
738
740
|
- lib/resolvers/windows/ffi/ffi.rb
|