lib/facter/facts/linux/cloud/provider.rb
# frozen_string_literal: true
module Facts
module Linux
module Cloud
class Provider
FACT_NAME = 'cloud.provider'
def call_the_resolver
provider = case Facter::Util::Facts::Posix::VirtualDetector.platform
when 'hyperv'
metadata = Facter::Resolvers::Az.resolve(:metadata)
'azure' unless metadata.nil? || metadata.empty?
when 'kvm', 'xen'
metadata = Facter::Resolvers::Ec2.resolve(:metadata)
'aws' unless metadata.nil? || metadata.empty?
when 'gce'
metadata = Facter::Resolvers::Gce.resolve(:metadata)
'gce' unless metadata.nil? || metadata.empty?
end
Facter::ResolvedFact.new(FACT_NAME, provider)
end
end
end
end
end