diff options
author | Thom May <thom@may.lt> | 2015-09-02 10:38:27 +0100 |
---|---|---|
committer | Thom May <thom@may.lt> | 2015-09-02 10:38:27 +0100 |
commit | c2749334c50f46136bec7cd776fa4da563ac5f97 (patch) | |
tree | 0edff9ca237d08f254f02472b96aa56051575fb3 | |
parent | 0db3a820a2db3311d1e783643f53ad5e40ba9e6f (diff) | |
parent | 2df3e0f435020bb5cf29c2a2b151aa265dcca68e (diff) | |
download | ohai-c2749334c50f46136bec7cd776fa4da563ac5f97.tar.gz |
Merge pull request #606 from sh9189/windows_memory_plugin
Windows memory plugin
-rw-r--r-- | lib/ohai/plugins/windows/memory.rb | 38 | ||||
-rw-r--r-- | spec/unit/plugins/windows/memory_spec.rb | 52 |
2 files changed, 90 insertions, 0 deletions
diff --git a/lib/ohai/plugins/windows/memory.rb b/lib/ohai/plugins/windows/memory.rb new file mode 100644 index 00000000..f62d84db --- /dev/null +++ b/lib/ohai/plugins/windows/memory.rb @@ -0,0 +1,38 @@ +# +# 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(:Memory) do + provides "memory" + + collect_data(:windows) do + require "wmi-lite/wmi" + + memory Mash.new + memory[:swap] = Mash.new + + wmi = WmiLite::Wmi.new + + os = wmi.first_of("Win32_OperatingSystem") + + # MemTotal + memory[:total] = os["TotalVisibleMemorySize"] + "kB" + # MemFree + memory[:free] = os["FreePhysicalMemory"] + "kB" + # SwapTotal + memory[:swap][:total] = os["SizeStoredInPagingFiles"] + "kB" + # SwapFree + memory[:swap][:free] = os["FreeSpaceInPagingFiles"] + "kB" + end +end
\ No newline at end of file diff --git a/spec/unit/plugins/windows/memory_spec.rb b/spec/unit/plugins/windows/memory_spec.rb new file mode 100644 index 00000000..db9de630 --- /dev/null +++ b/spec/unit/plugins/windows/memory_spec.rb @@ -0,0 +1,52 @@ +# +# 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. +# + +require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper.rb') + +describe Ohai::System, "Windows memory plugin", :windows_only do + before do + require "wmi-lite/wmi" + @plugin = get_plugin("windows/memory") + mock_os = { + "TotalVisibleMemorySize" => "10485760", + "FreePhysicalMemory" => "5242880", + "SizeStoredInPagingFiles" => "20971520", + "FreeSpaceInPagingFiles" => "15728640" + } + expect_any_instance_of(WmiLite::Wmi).to receive(:first_of).with('Win32_OperatingSystem').and_return(mock_os) + end + + it "should get total memory" do + @plugin.run + expect(@plugin["memory"]["total"]).to eql("10485760kB") + end + + it "should get free memory" do + @plugin.run + expect(@plugin["memory"]["free"]).to eql("5242880kB") + end + + it "should get total swap" do + @plugin.run + expect(@plugin["memory"]["swap"]["total"]).to eql("20971520kB") + end + + it "should get free memory" do + @plugin.run + expect(@plugin["memory"]["swap"]["free"]).to eql("15728640kB") + end + +end
\ No newline at end of file |