lib/ohai/plugins/cloud_v2.rb in ohai-8.0.1 vs lib/ohai/plugins/cloud_v2.rb in ohai-8.1.0
- old
+ new
@@ -22,10 +22,11 @@
depends "rackspace"
depends "eucalyptus"
depends "linode"
depends "openstack"
depends "azure"
+ depends "digital_ocean"
# Class to help enforce the interface exposed to node[:cloud] (OHAI-542)
#
# cloud[:provider] - (String) the cloud provider the VM is running on.
#
@@ -122,11 +123,11 @@
end
def get_gce_values
public_ips = gce['instance']['networkInterfaces'].collect do |interface|
if interface.has_key?('accessConfigs')
- interface['accessConfigs'].collect{|ac| ac['externalIp']}
+ interface['accessConfigs'].collect{|ac| ac['externalIp'] unless ac['externalIp'] == ''}
end
end.flatten.compact
private_ips = gce['instance']['networkInterfaces'].collect do |interface|
interface['ip']
@@ -268,10 +269,36 @@
@cloud_attr_obj.add_ipv4_addr(azure['private_ip'], :private)
@cloud_attr_obj.public_hostname = azure['public_fqdn']
@cloud_attr_obj.provider = "azure"
end
+
+ # ----------------------------------------
+ # digital_ocean
+ # ----------------------------------------
+
+ # Is current cloud digital_ocean?
+ #
+ # === Return
+ # true:: If digital_ocean Mash is defined
+ # false:: Otherwise
+ def on_digital_ocean?
+ digital_ocean != nil
+ end
+
+ # Fill cloud hash with digital_ocean values
+ def get_digital_ocean_values
+ digital_ocean['networks'].each do |network, addresses|
+ type = network == 'v4' ? 'ipv4' : 'ipv6'
+ addresses.each do |address|
+ @cloud_attr_obj.send("add_#{type}_addr", address['ip_address'], address['type'].to_sym)
+ end
+ end
+ @cloud_attr_obj.public_hostname = digital_ocean['name']
+ @cloud_attr_obj.provider = "digital_ocean"
+ end
+
collect_data do
require "ipaddr"
@cloud_attr_obj = CloudAttrs.new()
@@ -280,9 +307,10 @@
get_rackspace_values if on_rackspace?
get_linode_values if on_linode?
get_eucalyptus_values if on_eucalyptus?
get_openstack_values if on_openstack?
get_azure_values if on_azure?
+ get_digital_ocean_values if on_digital_ocean?
# set node[:cloud] hash here
cloud_v2 @cloud_attr_obj.cloud_mash
end
end