summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2018-03-09 09:48:12 -0800
committerGitHub <noreply@github.com>2018-03-09 09:48:12 -0800
commit4f8d4fc9f955a759a2b31a28c6690281b9fa94a7 (patch)
tree1041d0d3f4122844ca5f2a183eaa47a8bd1dcf77
parent20305d8791869f36b7c54558e3c631e0c508ecc5 (diff)
parent564cbc8ad060d10a2ea64f23315163e29d0c9c91 (diff)
downloadohai-4f8d4fc9f955a759a2b31a28c6690281b9fa94a7.tar.gz
Merge pull request #1155 from smcavallo/softlayer_cloud_attributes
add ohai support for softlayer cloud
-rw-r--r--lib/ohai/plugins/cloud.rb23
-rw-r--r--spec/unit/plugins/cloud_spec.rb36
2 files changed, 59 insertions, 0 deletions
diff --git a/lib/ohai/plugins/cloud.rb b/lib/ohai/plugins/cloud.rb
index caf0e584..e62f8e88 100644
--- a/lib/ohai/plugins/cloud.rb
+++ b/lib/ohai/plugins/cloud.rb
@@ -25,6 +25,7 @@ Ohai.plugin(:Cloud) do
depends "openstack"
depends "azure"
depends "digital_ocean"
+ depends "softlayer"
# Class to help enforce the interface exposed to node[:cloud] (OHAI-542)
#
@@ -294,6 +295,27 @@ Ohai.plugin(:Cloud) do
@cloud_attr_obj.provider = "digital_ocean"
end
+ # ----------------------------------------
+ # softlayer
+ # ----------------------------------------
+
+ # Is current cloud softlayer?
+ #
+ # === Return
+ # true:: If softlayer Hash is defined
+ # false:: Otherwise
+ def on_softlayer?
+ softlayer != nil
+ end
+
+ # Fill cloud hash with softlayer values
+ def get_softlayer_values
+ @cloud_attr_obj.add_ipv4_addr(softlayer["public_ipv4"], :public)
+ @cloud_attr_obj.add_ipv4_addr(softlayer["local_ipv4"], :private)
+ @cloud_attr_obj.public_hostname = softlayer["public_fqdn"]
+ @cloud_attr_obj.provider = "softlayer"
+ end
+
collect_data do
require "ipaddr"
@@ -307,6 +329,7 @@ Ohai.plugin(:Cloud) do
get_openstack_values if on_openstack?
get_azure_values if on_azure?
get_digital_ocean_values if on_digital_ocean?
+ get_softlayer_values if on_softlayer?
cloud @cloud_attr_obj.cloud_mash
end
diff --git a/spec/unit/plugins/cloud_spec.rb b/spec/unit/plugins/cloud_spec.rb
index 76c6e305..e26205d4 100644
--- a/spec/unit/plugins/cloud_spec.rb
+++ b/spec/unit/plugins/cloud_spec.rb
@@ -86,6 +86,7 @@ describe Ohai::System, "plugin cloud" do
@plugin[:azure] = nil
@plugin[:gce] = nil
@plugin[:digital_ocean] = nil
+ @plugin[:softlayer] = nil
@plugin.run
expect(@plugin[:cloud]).to be_nil
end
@@ -445,4 +446,39 @@ describe Ohai::System, "plugin cloud" do
end
end
+ describe "with softlayer mash" do
+ before do
+ @plugin[:softlayer] = Mash.new
+ @plugin[:softlayer] = { "local_ipv4" => "192.168.0.1",
+ "public_ipv4" => "8.8.8.8",
+ "public_fqdn" => "abc1234.public.com",
+ }
+ end
+
+ it "populates cloud public ip" do
+ @plugin.run
+ expect(@plugin[:cloud][:public_ipv4_addrs][0]).to eq(@plugin[:softlayer][:public_ipv4])
+ end
+
+ it "populates cloud private ip" do
+ @plugin.run
+ expect(@plugin[:cloud][:local_ipv4_addrs][0]).to eq(@plugin[:softlayer][:local_ipv4])
+ end
+
+ it "populates first cloud public ip" do
+ @plugin.run
+ expect(@plugin[:cloud][:public_ipv4_addrs].first).to eq(@plugin[:softlayer][:public_ipv4])
+ end
+
+ it "populates cloud public_hostname" do
+ @plugin.run
+ expect(@plugin[:cloud][:public_hostname]).to eq(@plugin[:softlayer][:public_fqdn])
+ end
+
+ it "populates cloud provider" do
+ @plugin.run
+ expect(@plugin[:cloud][:provider]).to eq("softlayer")
+ end
+ end
+
end