Parent

Included Modules

Class/Module Index [+]

Quicksearch

RHC::Config

Responsible for encapsulating the loading and retrieval of OpenShift configuration files and converting them to commandline option equivalents. It also provides the converse option - converting a set of commandline options back into a config file.

In general, the values stored in the config should be identical (require little or no type conversion) to their option form. As new global options are added, only this class should have to change to persist that option.

During normal use, a new Config object should load the appropriate settings and those settings should be converted into commandline option defaults.

TODO: Encapsulate config writing to the home location TODO: Allow the config object to initialized with a path TODO: Remove deprecated methods, remove extra sources.

Constants

OPTIONS

Option name [config_key type comment_string_for_config]

if nil, == key  nil == string  won't be written to file if nil

Public Class Methods

default() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 86
def self.default
  @default ||= RHC::Config.new
end
initialize() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 100
def self.initialize
  @default = nil
  default
end
method_missing(method, *args, &block) click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 91
def self.method_missing(method, *args, &block)
  if default.respond_to?(method)
    default.send(method, *args, &block)
  else
    raise NoMethodError, method
  end
end
new() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 106
def initialize
  set_defaults
end
options_to_config(options) click to toggle source
# File lib/rhc/config.rb, line 64
def self.options_to_config(options)
  OPTIONS.inject([]) do |arr, (name, opts)|
    opts ||= []
    next arr unless opts[2]
    value = options[name]
    arr.concat(opts[2].each_line.to_a.map(&:strip).map{ |s| "# #{s}" })
    arr << "#{value.nil? ? '#' : ''}#{opts[0] || name}=#{self.type_to_config(opts[1], value)}"
    arr << ""
    arr
  end.join("\n")
end
type_to_config(type, value) click to toggle source
# File lib/rhc/config.rb, line 76
def self.type_to_config(type, value)
  case type
  when :integer, :boolean
    value.nil? ? "<#{type}>" : value
  else
    value.nil? ? "<#{type || 'string'}>" : value
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/rhc/config.rb, line 160
def [](key)
  lazy_init

  # evaluate in cascading order
  configs = [@opts, @opts_config, @env_config, @local_config, @global_config, @defaults]
  result = nil
  configs.each do |conf|
    result = conf[key] if !conf.nil?
    break if !result.nil?
  end

  result
end
check_cpath(opts) click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 210
def check_cpath(opts)
  unless opts["config"].nil?
    opts_config_path = File.expand_path(opts["config"])
    if !File.readable?(opts_config_path)
      raise Errno::EACCES.new "Could not open config file: #{@opts_config_path}"
    else
      set_opts_config(opts_config_path)
    end
  end
end
config_path() click to toggle source

config_path

authoritive configuration path this is used to determine where config options should be written to when a script modifies the config such as in rhc setup

# File lib/rhc/config.rb, line 252
def config_path
  @config_path ||= local_config_path
end
default_proxy() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 273
def default_proxy
  @default_proxy ||= (
    proxy = ENV['http_proxy'] || ENV['HTTP_PROXY']
    if proxy
      if proxy !~ /^(\w+):\/\// then
        proxy = "http://#{proxy}"
      end
      ENV['http_proxy'] = proxy
      proxy_uri = URI.parse(ENV['http_proxy'])
      Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
    else
      Net::HTTP
    end
  )
end
default_rhlogin() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 268
def default_rhlogin
  get_value('default_rhlogin')
end
get_value(key) click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 175
def get_value(key)
  self[key]
end
global_config_path() click to toggle source

DEPRECATED - may be made private

# File lib/rhc/config.rb, line 222
def global_config_path
  linux_cfg = '/etc/openshift/' + conf_name
  File.exists?(linux_cfg) ? linux_cfg : File.join(File.expand_path(File.dirname(__FILE__) + "/../../conf"), conf_name)
end
has_global_config?() click to toggle source
# File lib/rhc/config.rb, line 227
def has_global_config?
  lazy_init
  !@global_config.nil?
end
has_local_config?() click to toggle source
# File lib/rhc/config.rb, line 232
def has_local_config?
  lazy_init
  !@local_config.nil?
end
has_opts_config?() click to toggle source
# File lib/rhc/config.rb, line 237
def has_opts_config?
  !@opts_config.nil?
end
home_conf_path() click to toggle source
# File lib/rhc/config.rb, line 263
def home_conf_path
  home_conf_dir
end
home_dir() click to toggle source
# File lib/rhc/config.rb, line 259
def home_dir
  RHC::Config.home_dir
end
path() click to toggle source
# File lib/rhc/config.rb, line 255
def path
  config_path
end
proxy_vars() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 295
def proxy_vars
  Hash[[:address,:user,:pass,:port].map do |x|
    [x,default_proxy.instance_variable_get("@proxy_#{x}")]
  end]
end
read_config_files() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 111
def read_config_files
  load_config_files
end
save!(options) click to toggle source
# File lib/rhc/config.rb, line 153
def save!(options)
  File.open(path, 'w'){ |f| f.puts self.class.options_to_config(options) }
  @opts, @opts_config, @local_config, @global_config = nil
  load_config_files
  self
end
set_defaults() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 116
def set_defaults
  @defaults = RHC::Vendor::ParseConfig.new()
  @opts  = RHC::Vendor::ParseConfig.new() # option switches that override config file

  @env_config = RHC::Vendor::ParseConfig.new()
  @global_config = nil
  @local_config = nil
  @opts_config = nil # config file passed in the options

  @default_proxy = nil

  @defaults.add('libra_server', 'openshift.redhat.com')
  @env_config.add('libra_server', ENV['LIBRA_SERVER']) if ENV['LIBRA_SERVER']
  @env_config.add('libra_server', ENV['RHC_SERVER']) if ENV['RHC_SERVER']

  @opts_config_path = nil
end
set_local_config(conf_path, must_exist=true) click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 185
def set_local_config(conf_path, must_exist=true)
  conf_path = File.expand_path(conf_path)
  @config_path = conf_path if @opts_config_path.nil?
  @local_config = RHC::Vendor::ParseConfig.new(conf_path)
rescue Errno::EACCES => e
  raise Errno::EACCES.new "Could not open config file: #{e.message}" if must_exist
end
set_opts_config(conf_path) click to toggle source

DEPRECATED - needs to be renamed to something cleaner

# File lib/rhc/config.rb, line 194
def set_opts_config(conf_path)
  @opts_config_path = File.expand_path(conf_path)
  @config_path = @opts_config_path
  @opts_config = RHC::Vendor::ParseConfig.new(@opts_config_path) if File.exists?(@opts_config_path)
rescue Errno::EACCES => e
  raise Errno::EACCES.new "Could not open config file: #{e.message}"
end
should_run_ssh_wizard?() click to toggle source

DEPRECATED - should be moved to Helpers

# File lib/rhc/config.rb, line 242
def should_run_ssh_wizard?
  not File.exists? ssh_priv_key_file_path
end
to_options() click to toggle source
# File lib/rhc/config.rb, line 134
def to_options
  OPTIONS.inject({}) do |h, (name, opts)|
      opts = Array(opts)
      value = self[opts[0] || name.to_s]
      if value
        value = case opts[1]
                when :integer
                  Integer(value)
                when :boolean
                  !!(value =~ /^\s*(y|yes|1|t|true)\s*$/)
                else
                  value unless value.blank?
                end
        h[name] = value unless value.nil?
      end
      h
    end
end
use_config(path) click to toggle source
# File lib/rhc/config.rb, line 202
def use_config(path)
  path = File.expand_path(path)
  set_opts_config(path)
rescue => e
  raise ArgumentError, "Unable to read configuration file: #{e.message}", $!.backtrace
end
username() click to toggle source

DEPRECATED - underlying value and command option needs to be migrated to login

# File lib/rhc/config.rb, line 180
def username
  self['default_rhlogin']
end
using_proxy?() click to toggle source

DEPRECATED - will be removed when old commands are gone

# File lib/rhc/config.rb, line 290
def using_proxy?
  default_proxy.instance_variable_get(:@is_proxy_class) || false
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.