Class: Facts::Linux::Ec2Userdata

Inherits:
Object
  • Object
show all
Defined in:
lib/facter/facts/linux/ec2_userdata.rb

Constant Summary collapse

FACT_NAME =
'ec2_userdata'

Instance Method Summary collapse

Instance Method Details

#aws?Boolean

Returns:

  • (Boolean)


16
17
18
19
20
# File 'lib/facter/facts/linux/ec2_userdata.rb', line 16

def aws?
  virtual = check_virt_what || check_xen || check_product_name || check_bios_vendor || check_lspci

  virtual == 'kvm' || virtual =~ /xen/
end

#call_the_resolverObject



8
9
10
11
12
13
14
# File 'lib/facter/facts/linux/ec2_userdata.rb', line 8

def call_the_resolver
  return Facter::ResolvedFact.new(FACT_NAME, nil) unless aws?

  fact_value = Facter::Resolvers::Ec2.resolve(:userdata)

  Facter::ResolvedFact.new(FACT_NAME, fact_value.empty? ? nil : fact_value)
end

#check_bios_vendorObject



37
38
39
40
# File 'lib/facter/facts/linux/ec2_userdata.rb', line 37

def check_bios_vendor
  bios_vendor = Facter::Resolvers::Linux::DmiBios.resolve(:bios_vendor)
  return 'kvm' if bios_vendor&.include?('Amazon EC2')
end

#check_lspciObject



42
43
44
# File 'lib/facter/facts/linux/ec2_userdata.rb', line 42

def check_lspci
  Facter::Resolvers::Lspci.resolve(:vm)
end

#check_product_nameObject



30
31
32
33
34
35
# File 'lib/facter/facts/linux/ec2_userdata.rb', line 30

def check_product_name
  product_name = Facter::Resolvers::Linux::DmiBios.resolve(:product_name)
  return unless product_name

  Facter::FactsUtils::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
end

#check_virt_whatObject



22
23
24
# File 'lib/facter/facts/linux/ec2_userdata.rb', line 22

def check_virt_what
  Facter::Resolvers::VirtWhat.resolve(:vm)
end

#check_xenObject



26
27
28
# File 'lib/facter/facts/linux/ec2_userdata.rb', line 26

def check_xen
  Facter::Resolvers::Xen.resolve(:vm)
end