summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Edwards <adamed@opscode.com>2014-04-01 13:39:57 -0700
committerAdam Edwards <adamed@opscode.com>2014-04-01 13:39:57 -0700
commitb9d8382bdc85da028c6562b02d28f63cfbc1e5d9 (patch)
tree78e2fb66ea0ab75f67d76db96e0a72c6fd104572
parent6ebea4d64527fb763ed9c9243d65e3bd617c538d (diff)
parent7bf1b29ad11711488de33c92a741002dc499a8c1 (diff)
downloadohai-b9d8382bdc85da028c6562b02d28f63cfbc1e5d9.tar.gz
Merge pull request #310 from opscode/adamed/OHAI-551-rebase
Merge OHAI-551 latest + specs
-rw-r--r--lib/ohai/plugins/linux/virtualization.rb4
-rw-r--r--spec/unit/plugins/linux/virtualization_spec.rb22
2 files changed, 23 insertions, 3 deletions
diff --git a/lib/ohai/plugins/linux/virtualization.rb b/lib/ohai/plugins/linux/virtualization.rb
index 16b0c7bf..c50d440b 100644
--- a/lib/ohai/plugins/linux/virtualization.rb
+++ b/lib/ohai/plugins/linux/virtualization.rb
@@ -146,10 +146,10 @@ Ohai.plugin(:Virtualization) do
# Full notes, https://tickets.opscode.com/browse/OHAI-551
# Kernel docs, https://www.kernel.org/doc/Documentation/cgroups
if File.exists?("/proc/self/cgroup")
- if File.read("/proc/self/cgroup") =~ %r{^\d+:.+:/lxc/.+$}
+ if File.read("/proc/self/cgroup") =~ %r{^\d+:[^:]+:/(lxc|docker)/.+$}
virtualization[:system] = "lxc"
virtualization[:role] = "guest"
- elsif File.read("/proc/self/cgroup") =~ %r{\d:.+:/$}
+ elsif File.read("/proc/self/cgroup") =~ %r{\d:[^:]+:/$}
virtualization[:system] = "lxc"
virtualization[:role] = "host"
end
diff --git a/spec/unit/plugins/linux/virtualization_spec.rb b/spec/unit/plugins/linux/virtualization_spec.rb
index 35a8a7bd..7ac398ed 100644
--- a/spec/unit/plugins/linux/virtualization_spec.rb
+++ b/spec/unit/plugins/linux/virtualization_spec.rb
@@ -300,7 +300,27 @@ CGROUP
@plugin[:virtualization][:role].should == "guest"
end
- it "should set not set anyting if /proc/self/cgroup exist and the cgroup is named arbitrarily, it isn't necessarily lxc." do
+ it "should set lxc guest if /proc/self/cgroup exist and there are /docker/<name> mounts" do
+ self_cgroup=<<-CGROUP
+11:hugetlb:/
+10:perf_event:/
+9:blkio:/
+8:net_cls:/
+7:freezer:/
+6:devices:/
+5:memory:/
+4:cpuacct,cpu:/docker/9c2adaa4c391ec0d3bf994fbd91ff30c3d317694d179e5b1dc7e1e4c8ed56b61
+3:cpuset:/
+2:name=systemd:/system.slice/docker.service
+CGROUP
+ File.should_receive(:exists?).with("/proc/self/cgroup").and_return(true)
+ File.stub(:read).with("/proc/self/cgroup").and_return(self_cgroup)
+ @plugin.run
+ @plugin[:virtualization][:system].should == "lxc"
+ @plugin[:virtualization][:role].should == "guest"
+ end
+
+ it "should set not set anything if /proc/self/cgroup exist and the cgroup is named arbitrarily, it isn't necessarily lxc." do
self_cgroup=<<-CGROUP
8:blkio:/Charlie
7:net_cls:/Charlie