ohai 7.2.0.alpha.0 → 7.2.0.rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ohai/dsl/plugin.rb +5 -3
- data/lib/ohai/hints.rb +4 -2
- data/lib/ohai/mixin/ec2_metadata.rb +60 -36
- data/lib/ohai/mixin/gce_metadata.rb +5 -5
- data/lib/ohai/plugins/darwin/memory.rb +63 -0
- data/lib/ohai/plugins/joyent.rb +82 -0
- data/lib/ohai/plugins/linux/filesystem.rb +17 -0
- data/lib/ohai/plugins/network.rb +1 -1
- data/lib/ohai/plugins/rackspace.rb +8 -5
- data/lib/ohai/plugins/root_group.rb +4 -4
- data/lib/ohai/plugins/solaris2/virtualization.rb +7 -0
- data/lib/ohai/system.rb +3 -3
- data/lib/ohai/util/win32.rb +46 -0
- data/lib/ohai/util/win32/group_helper.rb +76 -0
- data/lib/ohai/version.rb +1 -1
- data/spec/functional/plugins/root_group_spec.rb +41 -0
- data/spec/spec_helper.rb +13 -1
- data/spec/unit/dsl/plugin_spec.rb +3 -3
- data/spec/unit/plugins/darwin/memory_spec.rb +64 -0
- data/spec/unit/plugins/ec2_spec.rb +22 -1
- data/spec/unit/plugins/gce_spec.rb +1 -1
- data/spec/unit/plugins/joyent_spec.rb +74 -0
- data/spec/unit/plugins/linux/filesystem_spec.rb +29 -2
- data/spec/unit/plugins/network_spec.rb +48 -31
- data/spec/unit/plugins/root_group_spec.rb +8 -8
- data/spec/unit/runner_spec.rb +7 -7
- data/spec/unit/system_spec.rb +5 -5
- data/spec/unit/util/file_helper_spec.rb +1 -1
- metadata +52 -17
@@ -18,13 +18,13 @@
|
|
18
18
|
Ohai.plugin(:RootGroup) do
|
19
19
|
provides 'root_group'
|
20
20
|
|
21
|
+
require 'ohai/util/win32/group_helper' if RUBY_PLATFORM =~ /mswin|mingw32|windows/
|
22
|
+
|
21
23
|
collect_data do
|
22
24
|
case ::RbConfig::CONFIG['host_os']
|
23
25
|
when /mswin|mingw32|windows/
|
24
|
-
|
25
|
-
|
26
|
-
# The windows implementation of this plugin has been removed because of
|
27
|
-
# performance considerations (see: OHAI-490).
|
26
|
+
group = Ohai::Util::Win32::GroupHelper.windows_root_group_name
|
27
|
+
root_group group
|
28
28
|
else
|
29
29
|
root_group Etc.getgrgid(Etc.getpwnam('root').gid).name
|
30
30
|
end
|
@@ -21,6 +21,12 @@
|
|
21
21
|
Ohai.plugin(:Virtualization) do
|
22
22
|
provides "virtualization"
|
23
23
|
|
24
|
+
def collect_solaris_guestid
|
25
|
+
command = '/usr/sbin/zoneadm list -p'
|
26
|
+
so = shell_out(command)
|
27
|
+
so.stdout.split(':').first
|
28
|
+
end
|
29
|
+
|
24
30
|
collect_data(:solaris2) do
|
25
31
|
virtualization Mash.new
|
26
32
|
|
@@ -75,6 +81,7 @@ Ohai.plugin(:Virtualization) do
|
|
75
81
|
virtualization[:system] = 'zone'
|
76
82
|
virtualization[:role] = 'guest'
|
77
83
|
virtualization[:guest_uuid] = zones[first_zone]['uuid']
|
84
|
+
virtualization[:guest_id] = collect_solaris_guestid
|
78
85
|
end
|
79
86
|
elsif (zones.length > 1)
|
80
87
|
virtualization[:system] = 'zone'
|
data/lib/ohai/system.rb
CHANGED
@@ -29,7 +29,7 @@ require 'ohai/provides_map'
|
|
29
29
|
require 'ohai/hints'
|
30
30
|
require 'mixlib/shellout'
|
31
31
|
|
32
|
-
require '
|
32
|
+
require 'ffi_yajl'
|
33
33
|
|
34
34
|
module Ohai
|
35
35
|
class System
|
@@ -173,14 +173,14 @@ module Ohai
|
|
173
173
|
# Serialize this object as a hash
|
174
174
|
#
|
175
175
|
def to_json
|
176
|
-
|
176
|
+
FFI_Yajl::Encoder.new.encode(@data)
|
177
177
|
end
|
178
178
|
|
179
179
|
#
|
180
180
|
# Pretty Print this object as JSON
|
181
181
|
#
|
182
182
|
def json_pretty_print(item=nil)
|
183
|
-
|
183
|
+
FFI_Yajl::Encoder.new(:pretty => true).encode(item || @data)
|
184
184
|
end
|
185
185
|
|
186
186
|
def attributes_print(a)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Author:: Adam Edwards (<adamed@getchef.com>)
|
2
|
+
#
|
3
|
+
# Copyright:: Copyright (c) 2013-14 Chef Software, Inc.
|
4
|
+
#
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
|
19
|
+
module Ohai
|
20
|
+
module Util
|
21
|
+
module Win32
|
22
|
+
if RUBY_PLATFORM =~ /mswin|mingw|windows/
|
23
|
+
|
24
|
+
require 'ffi'
|
25
|
+
|
26
|
+
extend FFI::Library
|
27
|
+
|
28
|
+
ffi_lib 'advapi32'
|
29
|
+
|
30
|
+
attach_function :lookup_account_sid,
|
31
|
+
:LookupAccountSidA,[ :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer ], :long
|
32
|
+
|
33
|
+
attach_function :convert_string_sid_to_sid,
|
34
|
+
:ConvertStringSidToSidA,[ :pointer, :pointer ], :long
|
35
|
+
|
36
|
+
ffi_lib 'kernel32'
|
37
|
+
|
38
|
+
attach_function :local_free,
|
39
|
+
:LocalFree, [ :pointer ], :long
|
40
|
+
|
41
|
+
attach_function :get_last_error,
|
42
|
+
:GetLastError, [], :long
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# Author:: Adam Edwards (<adamed@getchef.com>)
|
2
|
+
#
|
3
|
+
# Copyright:: Copyright (c) 2013-14 Chef Software, Inc.
|
4
|
+
#
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
|
19
|
+
require 'ohai/util/win32'
|
20
|
+
|
21
|
+
module Ohai
|
22
|
+
module Util
|
23
|
+
class Win32::GroupHelper
|
24
|
+
|
25
|
+
# Per http://support.microsoft.com/kb/243330 SID: S-1-5-32-544 is the
|
26
|
+
# internal name for the Administrators group, which lets us work
|
27
|
+
# properly in environments with a renamed or localized name for the
|
28
|
+
# Administrators group
|
29
|
+
BUILTIN_ADMINISTRATORS_SID = 'S-1-5-32-544'
|
30
|
+
|
31
|
+
def self.windows_root_group_name
|
32
|
+
administrators_group_name_result = nil
|
33
|
+
|
34
|
+
administrators_sid_result = FFI::MemoryPointer.new(:pointer)
|
35
|
+
convert_result = Win32.convert_string_sid_to_sid(BUILTIN_ADMINISTRATORS_SID, administrators_sid_result)
|
36
|
+
last_win32_error = Win32.get_last_error
|
37
|
+
|
38
|
+
if convert_result == 0
|
39
|
+
raise "ERROR: failed to to convert sid string '#{BUILTIN_ADMINISTRATORS_SID}' to a Windows SID structure because Win32 API function ConvertStringSidToSid returned #{last_win32_error}."
|
40
|
+
end
|
41
|
+
|
42
|
+
administrators_group_name_buffer = 0.chr * 260
|
43
|
+
administrators_group_name_length = [administrators_group_name_buffer.length].pack('L')
|
44
|
+
domain_name_length_buffer = [260].pack('L')
|
45
|
+
sid_use_result = 0.chr * 4
|
46
|
+
|
47
|
+
# Use LookupAccountSid rather than WMI's Win32_Group class because WMI will attempt
|
48
|
+
# to include (unneeded) Active Directory groups by querying AD, which is a performance
|
49
|
+
# and reliability issue since AD might not be reachable. Additionally, in domains with
|
50
|
+
# thousands of groups, the WMI query is very slow, on the order of minutes, even to
|
51
|
+
# get the first result. So we use LookupAccountSid which is a purely local lookup
|
52
|
+
# of the built-in group, with no need to access AD, and thus no failure modes related
|
53
|
+
# to network conditions or query performance.
|
54
|
+
lookup_boolean_result = Win32.lookup_account_sid(
|
55
|
+
nil,
|
56
|
+
administrators_sid_result.read_pointer,
|
57
|
+
administrators_group_name_buffer,
|
58
|
+
administrators_group_name_length,
|
59
|
+
nil,
|
60
|
+
domain_name_length_buffer,
|
61
|
+
sid_use_result)
|
62
|
+
|
63
|
+
last_win32_error = Win32.get_last_error
|
64
|
+
|
65
|
+
Win32.local_free(administrators_sid_result.read_pointer)
|
66
|
+
|
67
|
+
if lookup_boolean_result == 0
|
68
|
+
raise "ERROR: failed to find root group (i.e. builtin\\administrators) for sid #{BUILTIN_ADMINISTRATORS_SID} because Win32 API function LookupAccountSid returned #{last_win32_error}."
|
69
|
+
end
|
70
|
+
|
71
|
+
administrators_group_name_buffer.strip
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
data/lib/ohai/version.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Edwards (<adamed@getchef.com>)
|
3
|
+
#
|
4
|
+
# Copyright:: Copyright (c) 2014 Chef Software, Inc.
|
5
|
+
#
|
6
|
+
# License:: Apache License, Version 2.0
|
7
|
+
#
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
# you may not use this file except in compliance with the License.
|
10
|
+
# You may obtain a copy of the License at
|
11
|
+
#
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
13
|
+
#
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
17
|
+
# See the License for the specific language governing permissions and
|
18
|
+
# limitations under the License.
|
19
|
+
#
|
20
|
+
|
21
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
|
22
|
+
|
23
|
+
describe Ohai::System, 'root_group plugin' do
|
24
|
+
let(:plugin) { get_plugin("root_group") }
|
25
|
+
|
26
|
+
describe 'windows platform', :windows_only do
|
27
|
+
let (:wmi) { wmi = WmiLite::Wmi.new }
|
28
|
+
|
29
|
+
it 'should return the system\'s administrators (root) group' do
|
30
|
+
# Notethat the Win32_Group WMI provider can be slow if your
|
31
|
+
# system is domain-joined and has hundreds of thousands of
|
32
|
+
# groups in Active Directory -- not a typical test scenario, but
|
33
|
+
# something to watch if you run this test in such an environment.
|
34
|
+
groups = wmi.query("select * from Win32_Group where sid = 'S-1-5-32-544'")
|
35
|
+
groups.length.should == 1
|
36
|
+
administrators_group = groups[0]['name'].downcase
|
37
|
+
plugin.run
|
38
|
+
expect(plugin[:root_group].downcase).to be == administrators_group
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rspec'
|
2
|
+
require 'rspec/collection_matchers'
|
2
3
|
|
3
4
|
# require 'pry-debugger'
|
4
5
|
# require 'pry-stack_explorer'
|
@@ -8,6 +9,7 @@ $:.unshift(File.dirname(__FILE__) + '/../lib')
|
|
8
9
|
|
9
10
|
require 'spec/support/platform_helpers'
|
10
11
|
require 'spec/support/integration_helper'
|
12
|
+
require 'wmi-lite'
|
11
13
|
require 'ohai'
|
12
14
|
Ohai::Config[:log_level] = :error
|
13
15
|
|
@@ -84,7 +86,17 @@ def it_should_check_from_deep_mash(plugin, mash, attribute, from, value)
|
|
84
86
|
end
|
85
87
|
|
86
88
|
RSpec.configure do |config|
|
87
|
-
|
89
|
+
|
90
|
+
config.raise_errors_for_deprecations!
|
91
|
+
|
92
|
+
# `expect` should be preferred for new tests or when refactoring old tests,
|
93
|
+
# but we're not going to do a "big bang" change at this time.
|
94
|
+
config.expect_with :rspec do |c|
|
95
|
+
c.syntax = [:should, :expect]
|
96
|
+
end
|
97
|
+
config.mock_with :rspec do |c|
|
98
|
+
c.syntax = [:expect, :should]
|
99
|
+
end
|
88
100
|
|
89
101
|
config.filter_run :focus => true
|
90
102
|
|
@@ -22,7 +22,7 @@ require File.expand_path("../../../spec_helper.rb", __FILE__)
|
|
22
22
|
shared_examples "Ohai::DSL::Plugin" do
|
23
23
|
context "#initialize" do
|
24
24
|
it "should set has_run? to false" do
|
25
|
-
plugin.has_run?.should
|
25
|
+
plugin.has_run?.should be false
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should set the correct plugin version" do
|
@@ -48,7 +48,7 @@ shared_examples "Ohai::DSL::Plugin" do
|
|
48
48
|
|
49
49
|
it "should set has_run? to true" do
|
50
50
|
plugin.run
|
51
|
-
plugin.has_run?.should
|
51
|
+
plugin.has_run?.should be true
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -69,7 +69,7 @@ shared_examples "Ohai::DSL::Plugin" do
|
|
69
69
|
|
70
70
|
it "should set has_run? to true" do
|
71
71
|
plugin.run
|
72
|
-
plugin.has_run?.should
|
72
|
+
plugin.has_run?.should be true
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Patrick Collins (<pat@burned.com>)
|
3
|
+
# Copyright:: Copyright (c) 2013 Opscode, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper.rb')
|
20
|
+
|
21
|
+
describe Ohai::System, "Darwin Memory Plugin" do
|
22
|
+
before(:each) do
|
23
|
+
darwin_memsize = <<-DARWIN_MEMSIZE
|
24
|
+
17179869184
|
25
|
+
DARWIN_MEMSIZE
|
26
|
+
darwin_vm_stat = <<-DARWIN_VM_STAT
|
27
|
+
Mach Virtual Memory Statistics: (page size of 4096 bytes)
|
28
|
+
Pages free: 2155305.
|
29
|
+
Pages active: 924164.
|
30
|
+
Pages inactive: 189127.
|
31
|
+
Pages speculative: 531321.
|
32
|
+
Pages wired down: 391749.
|
33
|
+
"Translation faults": 14107520.
|
34
|
+
Pages copy-on-write: 810071.
|
35
|
+
Pages zero filled: 6981505.
|
36
|
+
Pages reactivated: 1397.
|
37
|
+
Pageins: 630064.
|
38
|
+
Pageouts: 0.
|
39
|
+
Object cache: 12 hits of 139872 lookups (0% hit rate)
|
40
|
+
DARWIN_VM_STAT
|
41
|
+
|
42
|
+
@plugin = get_plugin("darwin/memory")
|
43
|
+
@plugin.stub(:collect_os).and_return(:darwin)
|
44
|
+
@plugin.stub(:shell_out).with("sysctl -n hw.memsize").and_return(mock_shell_out(0, darwin_memsize, ""))
|
45
|
+
@plugin.stub(:shell_out).with("vm_stat").and_return(mock_shell_out(0, darwin_vm_stat, ""))
|
46
|
+
@plugin.run
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should set memory[:total] to 16384MB" do
|
50
|
+
@plugin[:memory][:total].should == '16384MB'
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should set memory[:active] to 5140MB" do
|
54
|
+
@plugin[:memory][:active].should == '5140MB'
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should set memory[:inactive] to 738MB" do
|
58
|
+
@plugin[:memory][:inactive].should == '738MB'
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should set memory[:free] to 10504MB" do
|
62
|
+
@plugin[:memory][:free].should == '10504MB'
|
63
|
+
end
|
64
|
+
end
|
@@ -12,7 +12,7 @@
|
|
12
12
|
#
|
13
13
|
# Unless required by applicable law or agreed to in writing, software
|
14
14
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
@@ -157,6 +157,27 @@ describe Ohai::System, "plugin ec2" do
|
|
157
157
|
|
158
158
|
@plugin[:ec2].should_not be_nil
|
159
159
|
end
|
160
|
+
|
161
|
+
it "should complete the run despite unavailable metadata" do
|
162
|
+
@http_client.should_receive(:get).
|
163
|
+
with("/2012-01-12/meta-data/").
|
164
|
+
and_return(double("Net::HTTP Response", :body => "metrics/", :code => "200"))
|
165
|
+
@http_client.should_receive(:get).
|
166
|
+
with("/2012-01-12/meta-data/metrics/").
|
167
|
+
and_return(double("Net::HTTP Response", :body => "vhostmd", :code => "200"))
|
168
|
+
@http_client.should_receive(:get).
|
169
|
+
with("/2012-01-12/meta-data/metrics/vhostmd").
|
170
|
+
and_return(double("Net::HTTP Response", :body => "", :code => "404"))
|
171
|
+
@http_client.should_receive(:get).
|
172
|
+
with("/2012-01-12/user-data/").
|
173
|
+
and_return(double("Net::HTTP Response", :body => "By the pricking of my thumb...", :code => "200"))
|
174
|
+
|
175
|
+
@plugin.run
|
176
|
+
|
177
|
+
@plugin[:ec2].should_not be_nil
|
178
|
+
@plugin[:ec2]['metrics'].should be_nil
|
179
|
+
@plugin[:ec2]['metrics_vhostmd'].should be_nil
|
180
|
+
end
|
160
181
|
end
|
161
182
|
|
162
183
|
describe "with ec2 mac and metadata address connected" do
|
@@ -72,7 +72,7 @@ describe Ohai::System, "plugin gce" do
|
|
72
72
|
File.stub(:exist?).with('/etc/chef/ohai/hints/gce.json').and_return(false)
|
73
73
|
File.stub(:exist?).with('C:\chef\ohai\hints/gce.json').and_return(false)
|
74
74
|
|
75
|
-
# Raise Errno::ENOENT to simulate the scenario in which metadata server
|
75
|
+
# Raise Errno::ENOENT to simulate the scenario in which metadata server
|
76
76
|
# can not be connected
|
77
77
|
t = double("connection")
|
78
78
|
t.stub(:connect_nonblock).and_raise(Errno::ENOENT)
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe Ohai::System, "plugin joyent" do
|
5
|
+
before(:each) do
|
6
|
+
@plugin = get_plugin('joyent')
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "without joyent" do
|
10
|
+
before(:each) do
|
11
|
+
@plugin.stub(:is_smartos?).and_return(false)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should NOT create joyent" do
|
15
|
+
@plugin.run
|
16
|
+
@plugin[:joyent].should be_nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "with joyent" do
|
21
|
+
before(:each) do
|
22
|
+
@plugin.stub(:is_smartos?).and_return(true)
|
23
|
+
@plugin[:virtualization] = Mash.new
|
24
|
+
@plugin[:virtualization][:guest_uuid] = "global"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should create joyent" do
|
28
|
+
@plugin.run
|
29
|
+
@plugin[:joyent].should_not be_nil
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "under global zone" do
|
33
|
+
before(:each) do
|
34
|
+
@plugin.run
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should ditect global zone" do
|
38
|
+
@plugin[:joyent][:sm_uuid].should eql 'global'
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should NOT create sm_id" do
|
42
|
+
@plugin[:joyent][:sm_id].should be_nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "under smartmachine" do
|
47
|
+
before(:each) do
|
48
|
+
@plugin[:virtualization][:guest_uuid] = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'
|
49
|
+
@plugin[:virtualization][:guest_id] = '30'
|
50
|
+
@plugin.stub(:collect_product_file).and_return(["Name: Joyent Instance", "Image: base64 13.4.2", "Documentation: http://wiki.joyent.com/jpc2/SmartMachine+Base"])
|
51
|
+
@plugin.stub(:collect_pkgsrc).and_return('http://pkgsrc.joyent.com/packages/SmartOS/2013Q4/x86_64/All')
|
52
|
+
@plugin.run
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should retrive zone uuid" do
|
56
|
+
@plugin[:joyent][:sm_uuid].should eql 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should collect sm_id" do
|
60
|
+
@plugin[:joyent][:sm_id].should eql '30'
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should collect images" do
|
64
|
+
@plugin[:joyent][:sm_image_id].should_not be_nil
|
65
|
+
@plugin[:joyent][:sm_image_ver].should_not be_nil
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should collect pkgsrc" do
|
69
|
+
@plugin[:joyent][:sm_pkgsrc].should eql 'http://pkgsrc.joyent.com/packages/SmartOS/2013Q4/x86_64/All'
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|