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