diff options
author | Adam Edwards <adamed@opscode.com> | 2014-04-01 13:39:57 -0700 |
---|---|---|
committer | Adam Edwards <adamed@opscode.com> | 2014-04-01 13:39:57 -0700 |
commit | b9d8382bdc85da028c6562b02d28f63cfbc1e5d9 (patch) | |
tree | 78e2fb66ea0ab75f67d76db96e0a72c6fd104572 | |
parent | 6ebea4d64527fb763ed9c9243d65e3bd617c538d (diff) | |
parent | 7bf1b29ad11711488de33c92a741002dc499a8c1 (diff) | |
download | ohai-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.rb | 4 | ||||
-rw-r--r-- | spec/unit/plugins/linux/virtualization_spec.rb | 22 |
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 |