summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Asuncion <jeunito@gmail.com>2016-09-01 00:43:03 -0700
committerJose Asuncion <jeunito@gmail.com>2016-09-01 00:43:03 -0700
commit7dd82d25e70b1d58076a25eccec97bf272bb02b3 (patch)
tree5fe4e0e44baea0445d953c7339c314dd9c6b37e7
parent8aa8eec09148a1a2b0df540f6a174c7b50ea6feb (diff)
downloadohai-7dd82d25e70b1d58076a25eccec97bf272bb02b3.tar.gz
detect lxd
-rw-r--r--lib/ohai/plugins/linux/virtualization.rb10
-rw-r--r--spec/unit/plugins/linux/virtualization_spec.rb20
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/ohai/plugins/linux/virtualization.rb b/lib/ohai/plugins/linux/virtualization.rb
index 145ec953..ec101314 100644
--- a/lib/ohai/plugins/linux/virtualization.rb
+++ b/lib/ohai/plugins/linux/virtualization.rb
@@ -194,5 +194,15 @@ Ohai.plugin(:Virtualization) do
virtualization[:role] = "guest"
virtualization[:systems][:docker] = "guest"
end
+
+ # Detect LXD
+ # See https://github.com/lxc/lxd/blob/master/doc/dev-lxd.md
+ if File.exist?("/dev/lxd/sock")
+ virtualization[:system] = "lxd"
+ virtualization[:role] = "guest"
+ elsif File.exist?("/var/lib/lxd/devlxd")
+ virtualization[:system] = "lxd"
+ virtualization[:role] = "host"
+ end
end
end
diff --git a/spec/unit/plugins/linux/virtualization_spec.rb b/spec/unit/plugins/linux/virtualization_spec.rb
index e9e6b15f..84870b95 100644
--- a/spec/unit/plugins/linux/virtualization_spec.rb
+++ b/spec/unit/plugins/linux/virtualization_spec.rb
@@ -38,6 +38,8 @@ describe Ohai::System, "Linux virtualization platform" do
allow(File).to receive(:exist?).with("/.dockerinit").and_return(false)
allow(File).to receive(:exist?).with("/proc/bus/pci/devices").and_return(false)
allow(File).to receive(:exist?).with("/sys/devices/virtual/misc/kvm").and_return(false)
+ allow(File).to receive(:exist?).with("/dev/lxd/sock").and_return(false)
+ allow(File).to receive(:exist?).with("/var/lib/lxd/devlxd").and_return(false)
# default the which wrappers to nil
allow(plugin).to receive(:lxc_version_exists?).and_return(false)
@@ -464,6 +466,24 @@ OUTPUT
end
end
+ describe "when we are checking for lxd" do
+ it "sets lxc guest if /dev/lxd/sock exists" do
+ expect(File).to receive(:exist?).with("/dev/lxd/sock").and_return(true)
+
+ plugin.run
+ expect(plugin[:virtualization][:system]).to eq("lxd")
+ expect(plugin[:virtualization][:role]).to eq("guest")
+ end
+
+ it "setx lxd host if /var/lib/lxd/devlxd exists" do
+ expect(File).to receive(:exist?).with("/var/lib/lxd/devlxd").and_return(true)
+
+ plugin.run
+ expect(plugin[:virtualization][:system]).to eq("lxd")
+ expect(plugin[:virtualization][:role]).to eq("host")
+ end
+ end
+
describe "when we are checking for lxc" do
it "sets lxc guest if /proc/self/cgroup exist and there are /lxc/<hexadecimal> mounts" do
self_cgroup = <<-CGROUP