Skip to content

Commit e6cee0a

Browse files
authored
Merge pull request #2531 from buzzdeee/master
(FACT-3163) Add support for OpenBSD
2 parents f065e53 + 3bda38c commit e6cee0a

File tree

130 files changed

+3370
-22
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+3370
-22
lines changed

.rubocop.yml

+2-19
Original file line numberDiff line numberDiff line change
@@ -55,27 +55,10 @@ Metrics/AbcSize:
5555
Enabled: false
5656

5757
Metrics/PerceivedComplexity:
58-
Exclude:
59-
- 'lib/facter/custom_facts/util/values.rb'
60-
- 'lib/facter/custom_facts/util/confine.rb'
61-
- 'lib/facter/custom_facts/core/execution/windows.rb'
62-
- 'lib/facter/custom_facts/core/execution/posix.rb'
63-
- 'install.rb'
64-
- 'lib/facter/resolvers/aix/ffi/ffi_helper.rb'
58+
Enabled: false
6559

6660
Metrics/CyclomaticComplexity:
67-
Exclude:
68-
- 'lib/facter/resolvers/windows/product_release.rb'
69-
- 'lib/facter/custom_facts/util/values.rb'
70-
- 'lib/facter/custom_facts/util/confine.rb'
71-
- 'lib/facter/custom_facts/core/execution/windows.rb'
72-
- 'lib/facter/custom_facts/core/execution/posix.rb'
73-
- 'lib/facter/facts/linux/cloud/provider.rb'
74-
- 'lib/facter/facts/windows/cloud/provider.rb'
75-
- 'lib/facter/framework/detector/os_detector.rb'
76-
- 'install.rb'
77-
- 'scripts/generate_changelog.rb'
78-
- 'lib/facter/resolvers/aix/ffi/ffi_helper.rb'
61+
Enabled: false
7962

8063
Metrics/ClassLength:
8164
Enabled: false

lib/facter/config.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ module Config
4444
]
4545
},
4646
{
47-
'Bsd' => [
48-
'Freebsd'
47+
'Bsd' => %w[
48+
Freebsd
49+
Openbsd
4950
]
5051
},
5152
'Solaris',
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Augeas
6+
class Version
7+
FACT_NAME = 'augeas.version'
8+
ALIASES = 'augeasversion'
9+
10+
def call_the_resolver
11+
fact_value = Facter::Resolvers::Augeas.resolve(:augeas_version)
12+
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
14+
Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
15+
end
16+
end
17+
end
18+
end
19+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Dmi
6+
module Bios
7+
class Vendor
8+
FACT_NAME = 'dmi.bios.vendor'
9+
ALIASES = 'bios_vendor'
10+
11+
def call_the_resolver
12+
fact_value = Facter::Resolvers::Openbsd::DmiBios.resolve(:bios_vendor)
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14+
end
15+
end
16+
end
17+
end
18+
end
19+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Dmi
6+
module Bios
7+
class Version
8+
FACT_NAME = 'dmi.bios.version'
9+
ALIASES = 'bios_version'
10+
11+
def call_the_resolver
12+
fact_value = Facter::Resolvers::Openbsd::DmiBios.resolve(:bios_version)
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14+
end
15+
end
16+
end
17+
end
18+
end
19+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Dmi
6+
class Manufacturer
7+
FACT_NAME = 'dmi.manufacturer'
8+
ALIASES = 'manufacturer'
9+
10+
def call_the_resolver
11+
fact_value = Facter::Resolvers::Openbsd::DmiBios.resolve(:sys_vendor)
12+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
13+
end
14+
end
15+
end
16+
end
17+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Dmi
6+
module Product
7+
class Name
8+
FACT_NAME = 'dmi.product.name'
9+
ALIASES = 'productname'
10+
11+
def call_the_resolver
12+
fact_value = Facter::Resolvers::Openbsd::DmiBios.resolve(:product_name)
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14+
end
15+
end
16+
end
17+
end
18+
end
19+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Dmi
6+
module Product
7+
class SerialNumber
8+
FACT_NAME = 'dmi.product.serial_number'
9+
ALIASES = 'serialnumber'
10+
11+
def call_the_resolver
12+
fact_value = Facter::Resolvers::Openbsd::DmiBios.resolve(:product_serial)
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14+
end
15+
end
16+
end
17+
end
18+
end
19+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Dmi
6+
module Product
7+
class Uuid
8+
FACT_NAME = 'dmi.product.uuid'
9+
ALIASES = 'uuid'
10+
11+
def call_the_resolver
12+
fact_value = Facter::Resolvers::Openbsd::DmiBios.resolve(:product_uuid)
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14+
end
15+
end
16+
end
17+
end
18+
end
19+
end
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
class Ec2Metadata
6+
FACT_NAME = 'ec2_metadata'
7+
8+
def call_the_resolver
9+
return Facter::ResolvedFact.new(FACT_NAME, nil) unless aws_hypervisors?
10+
11+
fact_value = Facter::Resolvers::Ec2.resolve(:metadata)
12+
13+
Facter::ResolvedFact.new(FACT_NAME, fact_value&.empty? ? nil : fact_value)
14+
end
15+
16+
private
17+
18+
def aws_hypervisors?
19+
Facter::Util::Facts::Posix::VirtualDetector.platform =~ /kvm|xen|aws/
20+
end
21+
end
22+
end
23+
end
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
class Ec2Userdata
6+
FACT_NAME = 'ec2_userdata'
7+
8+
def call_the_resolver
9+
return Facter::ResolvedFact.new(FACT_NAME, nil) unless aws_hypervisors?
10+
11+
fact_value = Facter::Resolvers::Ec2.resolve(:userdata)
12+
13+
Facter::ResolvedFact.new(FACT_NAME, fact_value&.empty? ? nil : fact_value)
14+
end
15+
16+
private
17+
18+
def aws_hypervisors?
19+
Facter::Util::Facts::Posix::VirtualDetector.platform =~ /kvm|xen|aws/
20+
end
21+
end
22+
end
23+
end
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
class Facterversion
6+
FACT_NAME = 'facterversion'
7+
8+
def call_the_resolver
9+
fact_value = Facter::Resolvers::Facterversion.resolve(:facterversion)
10+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
11+
end
12+
end
13+
end
14+
end
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Identity
6+
class Gid
7+
FACT_NAME = 'identity.gid'
8+
9+
def call_the_resolver
10+
fact_value = Facter::Resolvers::PosxIdentity.resolve(:gid)
11+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
12+
end
13+
end
14+
end
15+
end
16+
end
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Identity
6+
class Group
7+
FACT_NAME = 'identity.group'
8+
ALIASES = 'gid'
9+
10+
def call_the_resolver
11+
fact_value = Facter::Resolvers::PosxIdentity.resolve(:group)
12+
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14+
end
15+
end
16+
end
17+
end
18+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Identity
6+
class Privileged
7+
FACT_NAME = 'identity.privileged'
8+
9+
def call_the_resolver
10+
fact_value = Facter::Resolvers::PosxIdentity.resolve(:privileged)
11+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
12+
end
13+
end
14+
end
15+
end
16+
end
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Identity
6+
class Uid
7+
FACT_NAME = 'identity.uid'
8+
9+
def call_the_resolver
10+
fact_value = Facter::Resolvers::PosxIdentity.resolve(:uid)
11+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
12+
end
13+
end
14+
end
15+
end
16+
end
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
module Identity
6+
class User
7+
FACT_NAME = 'identity.user'
8+
ALIASES = 'id'
9+
10+
def call_the_resolver
11+
fact_value = Facter::Resolvers::PosxIdentity.resolve(:user)
12+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
13+
end
14+
end
15+
end
16+
end
17+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
class Ipaddress6Interfaces
6+
FACT_NAME = 'ipaddress6_.*'
7+
TYPE = :legacy
8+
9+
def call_the_resolver
10+
arr = []
11+
interfaces = Facter::Resolvers::Networking.resolve(:interfaces)
12+
interfaces&.each do |interface_name, info|
13+
arr << Facter::ResolvedFact.new("ipaddress6_#{interface_name}", info[:ip6], :legacy) if info[:ip6]
14+
end
15+
16+
arr
17+
end
18+
end
19+
end
20+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
class IpaddressInterfaces
6+
FACT_NAME = 'ipaddress_.*'
7+
TYPE = :legacy
8+
9+
def call_the_resolver
10+
arr = []
11+
interfaces = Facter::Resolvers::Networking.resolve(:interfaces)
12+
interfaces&.each do |interface_name, info|
13+
arr << Facter::ResolvedFact.new("ipaddress_#{interface_name}", info[:ip], :legacy) if info[:ip]
14+
end
15+
16+
arr
17+
end
18+
end
19+
end
20+
end
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Openbsd
5+
class IsVirtual
6+
FACT_NAME = 'is_virtual'
7+
8+
def call_the_resolver
9+
fact_value = Facter::Util::Facts::Posix::VirtualDetector.platform
10+
11+
Facter::ResolvedFact.new(FACT_NAME, check_if_virtual(fact_value))
12+
end
13+
14+
private
15+
16+
def check_if_virtual(found_vm)
17+
Facter::Util::Facts::PHYSICAL_HYPERVISORS.count(found_vm).zero?
18+
end
19+
end
20+
end
21+
end

0 commit comments

Comments
 (0)