Module: Chef::Knife::RackspaceBase
- Included in:
- RackspaceFlavorList, RackspaceImageList, RackspaceServerCreate, RackspaceServerDelete, RackspaceServerList
- Defined in:
- lib/chef/knife/rackspace_base.rb
Class Method Summary collapse
-
.included(includer) ⇒ Object
:nodoc: Would prefer to do this in a rational way, but can’t be done b/c of Mixlib::CLI’s design :(.
Instance Method Summary collapse
Class Method Details
.included(includer) ⇒ Object
:nodoc: Would prefer to do this in a rational way, but can’t be done b/c of Mixlib::CLI’s design :(
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/chef/knife/rackspace_base.rb', line 28 def self.included(includer) includer.class_eval do deps do require 'fog' require 'net/ssh/multi' require 'readline' require 'chef/json_compat' end option :rackspace_api_key, :short => "-K KEY", :long => "--rackspace-api-key KEY", :description => "Your rackspace API key", :proc => Proc.new { |key| Chef::Config[:knife][:rackspace_api_key] = key } option :rackspace_username, :short => "-A USERNAME", :long => "--rackspace-username USERNAME", :description => "Your rackspace API username", :proc => Proc.new { |username| Chef::Config[:knife][:rackspace_username] = username } option :rackspace_api_auth_url, :long => "--rackspace-api-auth-url URL", :description => "Your rackspace API auth url", :default => "auth.api.rackspacecloud.com", :proc => Proc.new { |url| Chef::Config[:knife][:rackspace_api_auth_url] = url } end end |
Instance Method Details
#connection ⇒ Object
58 59 60 61 62 63 64 65 66 67 |
# File 'lib/chef/knife/rackspace_base.rb', line 58 def connection @connection ||= begin connection = Fog::Compute.new( :provider => 'Rackspace', :rackspace_api_key => Chef::Config[:knife][:rackspace_api_key], :rackspace_username => (Chef::Config[:knife][:rackspace_username] || Chef::Config[:knife][:rackspace_api_username]), :rackspace_auth_url => Chef::Config[:knife][:rackspace_api_auth_url] || config[:rackspace_api_auth_url] ) end end |
#locate_config_value(key) ⇒ Object
69 70 71 72 |
# File 'lib/chef/knife/rackspace_base.rb', line 69 def locate_config_value(key) key = key.to_sym Chef::Config[:knife][key] || config[key] end |
#public_dns_name(server) ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/chef/knife/rackspace_base.rb', line 74 def public_dns_name(server) @public_dns_name ||= begin Resolv.getname(server.addresses["public"][0]) rescue "#{server.addresses["public"][0].gsub('.','-')}.static.cloud-ips.com" end end |