Module: ChefAPI::Defaults
- Defined in:
- lib/chef-api/defaults.rb
Constant Summary collapse
- ENDPOINT =
Default API endpoint
"https://api.opscode.com/".freeze
- USER_AGENT =
Default User Agent header string
"ChefAPI Ruby Gem #{ChefAPI::VERSION}".freeze
Class Method Summary collapse
-
.chef_api_config_path ⇒ String?
String representation of path to configuration file.
-
.client ⇒ String?
The name of the Chef API client.
-
.config ⇒ Hash
The Chef API configuration.
-
.config_path ⇒ Pathname
Pathname to configuration file, or a blank Pathname.
-
.endpoint ⇒ String
The endpoint where the Chef Server lives.
-
.flavor ⇒ true, false
The flavor of the target Chef Server.
-
.key ⇒ String?
The private key to authentication against the Chef Server.
-
.options ⇒ Hash
The list of calculated default options for the configuration.
-
.proxy_address ⇒ String?
The HTTP Proxy server address as a string.
-
.proxy_password ⇒ String?
The HTTP Proxy user password as a string.
-
.proxy_port ⇒ String?
The HTTP Proxy server port as a string.
-
.proxy_username ⇒ String?
The HTTP Proxy server username as a string.
-
.read_timeout ⇒ Integer?
Network request read timeout in seconds (default: 60).
-
.ssl_pem_file ⇒ String?
The path to a pem file on disk for use with a custom SSL verification.
-
.ssl_verify ⇒ true, false
Verify SSL requests (default: true).
-
.user_agent ⇒ String
The User Agent header to send along.
Class Method Details
.chef_api_config_path ⇒ String?
String representation of path to configuration file
48 49 50 51 52 53 54 |
# File 'lib/chef-api/defaults.rb', line 48 def chef_api_config_path ENV["CHEF_API_CONFIG"] || if ENV.key?("HOME") "~/.chef-api" else nil end end |
.client ⇒ String?
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.
113 114 115 |
# File 'lib/chef-api/defaults.rb', line 113 def client ENV["CHEF_API_CLIENT"] || config["CHEF_API_CLIENT"] end |
.config ⇒ Hash
The Chef API configuration
27 28 29 30 |
# File 'lib/chef-api/defaults.rb', line 27 def config path = config_path @config ||= path.exist? ? JSON.parse(path.read) : {} end |
.config_path ⇒ Pathname
Pathname to configuration file, or a blank Pathname.
36 37 38 39 40 41 42 |
# File 'lib/chef-api/defaults.rb', line 36 def config_path if result = chef_api_config_path Pathname(result). else Pathname("") end end |
.endpoint ⇒ String
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/
72 73 74 |
# File 'lib/chef-api/defaults.rb', line 72 def endpoint ENV["CHEF_API_ENDPOINT"] || config["CHEF_API_ENDPOINT"] || ENDPOINT end |
.flavor ⇒ true, false
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.
87 88 89 90 91 92 93 94 95 |
# File 'lib/chef-api/defaults.rb', line 87 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 ⇒ String?
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.
124 125 126 |
# File 'lib/chef-api/defaults.rb', line 124 def key ENV["CHEF_API_KEY"] || config["CHEF_API_KEY"] end |
.options ⇒ Hash
The list of calculated default options for the configuration.
19 20 21 |
# File 'lib/chef-api/defaults.rb', line 19 def Hash[Configurable.keys.map { |key| [key, send(key)] }] end |
.proxy_address ⇒ String?
The HTTP Proxy server address as a string
133 134 135 |
# File 'lib/chef-api/defaults.rb', line 133 def proxy_address ENV["CHEF_API_PROXY_ADDRESS"] || config["CHEF_API_PROXY_ADDRESS"] end |
.proxy_password ⇒ String?
The HTTP Proxy user password as a string
142 143 144 |
# File 'lib/chef-api/defaults.rb', line 142 def proxy_password ENV["CHEF_API_PROXY_PASSWORD"] || config["CHEF_API_PROXY_PASSWORD"] end |
.proxy_port ⇒ String?
The HTTP Proxy server port as a string
151 152 153 |
# File 'lib/chef-api/defaults.rb', line 151 def proxy_port ENV["CHEF_API_PROXY_PORT"] || config["CHEF_API_PROXY_PORT"] end |
.proxy_username ⇒ String?
The HTTP Proxy server username as a string
160 161 162 |
# File 'lib/chef-api/defaults.rb', line 160 def proxy_username ENV["CHEF_API_PROXY_USERNAME"] || config["CHEF_API_PROXY_USERNAME"] end |
.read_timeout ⇒ Integer?
Network request read timeout in seconds (default: 60)
191 192 193 194 195 |
# File 'lib/chef-api/defaults.rb', line 191 def read_timeout timeout_from_env = ENV["CHEF_API_READ_TIMEOUT"] || config["CHEF_API_READ_TIMEOUT"] Integer(timeout_from_env) unless timeout_from_env.nil? end |
.ssl_pem_file ⇒ String?
The path to a pem file on disk for use with a custom SSL verification
169 170 171 |
# File 'lib/chef-api/defaults.rb', line 169 def ssl_pem_file ENV["CHEF_API_SSL_PEM_FILE"] || config["CHEF_API_SSL_PEM_FILE"] end |
.ssl_verify ⇒ true, false
Verify SSL requests (default: true)
178 179 180 181 182 183 184 |
# File 'lib/chef-api/defaults.rb', line 178 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 ⇒ String
The User Agent header to send along.
102 103 104 |
# File 'lib/chef-api/defaults.rb', line 102 def user_agent ENV["CHEF_API_USER_AGENT"] || config["CHEF_API_USER_AGENT"] || USER_AGENT end |