Skip to content

Commit b1a234c

Browse files
committed
Support 'xenhvm' for AWS instances
Currently this happens: ``` $ sudo facter -p cloud $ sudo facter -p virtual xenhvm $ sudo /opt/puppetlabs/puppet/bin/virt-what xen xen-hvm aws ```
1 parent 07037a3 commit b1a234c

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

Diff for: lib/facter/facts/linux/cloud/provider.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def call_the_resolver
1111
when 'hyperv'
1212
metadata = Facter::Resolvers::Az.resolve(:metadata)
1313
'azure' unless metadata.nil? || metadata.empty?
14-
when 'kvm', 'xen'
14+
when 'kvm', 'xen', 'xenhvm'
1515
metadata = Facter::Resolvers::Ec2.resolve(:metadata)
1616
'aws' unless metadata.nil? || metadata.empty?
1717
when 'gce'

Diff for: spec/facter/facts/linux/cloud/provider_spec.rb

+25
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,31 @@
9090
end
9191
end
9292

93+
describe 'when on xenhvm' do
94+
before do
95+
allow(Facter::Resolvers::Ec2).to receive(:resolve).with(:metadata).and_return(value)
96+
allow(Facter::Util::Facts::Posix::VirtualDetector).to receive(:platform).and_return('xenhvm')
97+
end
98+
99+
describe 'Ec2 data exists and aws fact is set' do
100+
let(:value) { { 'some' => 'fact' } }
101+
102+
it 'Testing things' do
103+
expect(fact.call_the_resolver).to be_an_instance_of(Facter::ResolvedFact).and \
104+
have_attributes(name: 'cloud.provider', value: 'aws')
105+
end
106+
end
107+
108+
context 'when Ec2 data does not exist nil is returned' do
109+
let(:value) { {} }
110+
111+
it 'returns nil' do
112+
expect(fact.call_the_resolver).to be_an_instance_of(Facter::ResolvedFact).and \
113+
have_attributes(name: 'cloud.provider', value: nil)
114+
end
115+
end
116+
end
117+
93118
describe 'when on gce' do
94119
before do
95120
allow(Facter::Resolvers::Gce).to receive(:resolve).with(:metadata).and_return(value)

0 commit comments

Comments
 (0)