summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith84@gmail.com>2015-11-24 14:00:17 -0800
committerTim Smith <tsmith84@gmail.com>2015-11-24 14:00:17 -0800
commitc88f805d623609fc25684f58c55b8082c3fc6426 (patch)
tree19c7aee6efc4f0d22e4f59527912fa5d2cd26c38
parentf1e35bf1d2352bcec0d8b244fdb575ea031a1ee4 (diff)
downloadohai-c88f805d623609fc25684f58c55b8082c3fc6426.tar.gz
Virtualbox plugin
Collects information on the guest additions and the host. Requires the guest additions to be installed.
-rw-r--r--lib/ohai/plugins/virtualbox.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/ohai/plugins/virtualbox.rb b/lib/ohai/plugins/virtualbox.rb
new file mode 100644
index 00000000..791fc39d
--- /dev/null
+++ b/lib/ohai/plugins/virtualbox.rb
@@ -0,0 +1,44 @@
+#
+# Author:: "Tim Smith" <tsmith@chef.io>
+# Copyright:: Copyright (c) 2015 Chef Software, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+Ohai.plugin(:Virtualbox) do
+ provides 'virtualbox'
+
+ collect_data do
+ so = shell_out('VBoxControl guestproperty enumerate')
+ if so.exitstatus == 0
+ virtualbox Mash.new
+ virtualbox[:host] = Mash.new
+ virtualbox[:guest] = Mash.new
+ so.stdout.lines.each do |line|
+ case line
+ when /LanguageID, value: (\S*),/
+ virtualbox[:host][:language] = Regexp.last_match(1)
+ when /VBoxVer, value: (\S*),/
+ virtualbox[:host][:version] = Regexp.last_match(1)
+ when /VBoxRev, value: (\S*),/
+ virtualbox[:host][:revision] = Regexp.last_match(1)
+ when /GuestAdd\/VersionExt, value: (\S*),/
+ virtualbox[:guest][:guest_additions_version] = Regexp.last_match(1)
+ when /GuestAdd\/Revision, value: (\S*),/
+ virtualbox[:guest][:guest_additions_revision] = Regexp.last_match(1)
+ end
+ end
+ end
+ end
+end