module ChefAPI::Defaults

Constants

ENDPOINT

Default API endpoint

USER_AGENT

Default User Agent header string

Public Class Methods

client() click to toggle source

The name of the Chef API client. This is the equivalent of client_name in Chef terminology. In most cases, this is your Chef username.

@return [String, nil]

# File lib/chef-api/defaults.rb, line 88
def client
  ENV['CHEF_API_CLIENT'] || config['CHEF_API_CLIENT']
end
config() click to toggle source

The Chef API configuration

@return [Hash]

# File lib/chef-api/defaults.rb, line 26
def config
  path = File.expand_path(ENV['CHEF_API_CONFIG'] || '~/.chef-api')
  @config ||= File.exist?(path) ? JSON.parse(File.read(path)) : {}
end
endpoint() click to toggle source

The endpoint where the Chef Server lives. This is equivalent to the chef_server_url in Chef terminology. If you are using Enterprise Hosted Chef or Enterprise Chef on premise, this endpoint should include your organization name. For example:

https://api.opscode.com/organizations/bacon

If you are running Open Source Chef Server or Chef Zero, this is the full URL to your Chef Server instance, including the server port and FQDN.

https://chef.server.local:4567/

@return [String] (default: https://api.opscode.com/)

# File lib/chef-api/defaults.rb, line 47
def endpoint
  ENV['CHEF_API_ENDPOINT'] || config['CHEF_API_ENDPOINT'] || ENDPOINT
end
flavor() click to toggle source

The flavor of the target Chef Server. There are two possible values:

- enterprise
- open_source

“Enterprise” covers both Hosted Chef and Enterprise Chef. “Open Source” covers both Chef Zero and Open Source Chef Server.

@return [true, false]

# File lib/chef-api/defaults.rb, line 62
def flavor
  if ENV['CHEF_API_FLAVOR']
    ENV['CHEF_API_FLAVOR'].to_sym
  elsif config['CHEF_API_FLAVOR']
    config['CHEF_API_FLAVOR']
  else
    endpoint.include?('/organizations') ? :enterprise : :open_source
  end
end
key() click to toggle source

The private key to authentication against the Chef Server. This is equivalent to the client_key in Chef terminology. This value can be the client key in plain text or a path to the key on disk.

@return [String, nil]

# File lib/chef-api/defaults.rb, line 99
def key
   ENV['CHEF_API_KEY'] || config['CHEF_API_KEY']
end
options() click to toggle source

The list of calculated default options for the configuration.

@return [Hash]

# File lib/chef-api/defaults.rb, line 18
def options
  Hash[Configurable.keys.map { |key| [key, send(key)] }]
end
proxy_address() click to toggle source

The HTTP Proxy server address as a string

@return [String, nil]

# File lib/chef-api/defaults.rb, line 107
def proxy_address
  ENV['CHEF_API_PROXY_ADDRESS'] || config['CHEF_API_PROXY_ADDRESS']
end
proxy_password() click to toggle source

The HTTP Proxy user password as a string

@return [String, nil]

# File lib/chef-api/defaults.rb, line 116
def proxy_password
  ENV['CHEF_API_PROXY_PASSWORD'] || config['CHEF_API_PROXY_PASSWORD']
end
proxy_port() click to toggle source

The HTTP Proxy server port as a string

@return [String, nil]

# File lib/chef-api/defaults.rb, line 125
def proxy_port
  ENV['CHEF_API_PROXY_PORT'] || config['CHEF_API_PROXY_PORT']
end
proxy_username() click to toggle source

The HTTP Proxy server username as a string

@return [String, nil]

# File lib/chef-api/defaults.rb, line 134
def proxy_username
  ENV['CHEF_API_PROXY_USERNAME'] || config['CHEF_API_PROXY_USERNAME']
end
ssl_pem_file() click to toggle source

The path to a pem file on disk for use with a custom SSL verification

@return [String, nil]

# File lib/chef-api/defaults.rb, line 143
def ssl_pem_file
  ENV['CHEF_API_SSL_PEM_FILE'] || config['CHEF_API_SSL_PEM_FILE']
end
ssl_verify() click to toggle source

Verify SSL requests (default: true)

@return [true, false]

# File lib/chef-api/defaults.rb, line 152
def ssl_verify
  if ENV['CHEF_API_SSL_VERIFY'].nil? && config['CHEF_API_SSL_VERIFY'].nil?
    true
  else
    %w[t y].include?(ENV['CHEF_API_SSL_VERIFY'].downcase[0]) || config['CHEF_API_SSL_VERIFY']
  end
end
user_agent() click to toggle source

The User Agent header to send along.

@return [String]

# File lib/chef-api/defaults.rb, line 77
def user_agent
  ENV['CHEF_API_USER_AGENT'] || config['CHEF_API_USER_AGENT'] || USER_AGENT
end