rhc 0.97.17 → 0.98.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. data/bin/rhc +9 -9
  2. data/bin/rhc-port-forward +3 -0
  3. data/bin/rhc-sshkey +3 -0
  4. data/features/README.md +163 -35
  5. data/features/application.feature +24 -0
  6. data/features/cartridge.feature +24 -0
  7. data/features/client.feature +11 -0
  8. data/features/domain.feature +29 -0
  9. data/features/lib/rhc_helper.rb +14 -0
  10. data/features/lib/rhc_helper/app.rb +2 -8
  11. data/features/lib/rhc_helper/cartridge.rb +1 -7
  12. data/features/lib/rhc_helper/commandify.rb +37 -6
  13. data/features/lib/rhc_helper/domain.rb +5 -1
  14. data/features/lib/rhc_helper/httpify.rb +124 -60
  15. data/features/lib/rhc_helper/loggable.rb +0 -2
  16. data/features/lib/rhc_helper/persistable.rb +12 -2
  17. data/features/lib/rhc_helper/sshkey.rb +29 -0
  18. data/features/multiple_cartridge.feature +17 -0
  19. data/features/sshkey.feature +58 -0
  20. data/features/step_definitions/application_steps.rb +60 -52
  21. data/features/step_definitions/cartridge_steps.rb +22 -24
  22. data/features/step_definitions/client_steps.rb +9 -2
  23. data/features/step_definitions/domain_steps.rb +4 -0
  24. data/features/step_definitions/sshkey_steps.rb +56 -0
  25. data/features/support/assumptions.rb +37 -0
  26. data/features/support/before_hooks.rb +25 -0
  27. data/features/support/env.rb +84 -39
  28. data/features/support/key1 +27 -0
  29. data/features/support/key1.pub +1 -0
  30. data/features/support/key2 +27 -0
  31. data/features/support/key2.pub +1 -0
  32. data/features/support/key3.pub +1 -0
  33. data/features/support/ssh.sh +2 -0
  34. data/features/verify.feature +18 -159
  35. data/lib/rhc-common.rb +8 -21
  36. data/lib/rhc.rb +9 -5
  37. data/lib/rhc/autocomplete.rb +68 -0
  38. data/lib/rhc/autocomplete_templates/rhc.erb +33 -0
  39. data/lib/rhc/cli.rb +9 -6
  40. data/lib/rhc/command_runner.rb +108 -0
  41. data/lib/rhc/commands.rb +66 -132
  42. data/lib/rhc/commands/base.rb +95 -24
  43. data/lib/rhc/commands/domain.rb +33 -50
  44. data/lib/rhc/commands/port-forward.rb +81 -0
  45. data/lib/rhc/commands/setup.rb +1 -1
  46. data/lib/rhc/commands/sshkey.rb +95 -0
  47. data/lib/rhc/config.rb +108 -103
  48. data/lib/rhc/context_helper.rb +19 -0
  49. data/lib/rhc/coverage_helper.rb +1 -1
  50. data/lib/rhc/exceptions.rb +55 -4
  51. data/lib/rhc/help_formatter.rb +2 -3
  52. data/lib/rhc/helpers.rb +31 -23
  53. data/lib/{rhc-rest.rb → rhc/rest.rb} +95 -23
  54. data/lib/{rhc-rest → rhc/rest}/application.rb +1 -1
  55. data/lib/{rhc-rest → rhc/rest}/cartridge.rb +1 -1
  56. data/lib/{rhc-rest → rhc/rest}/client.rb +40 -9
  57. data/lib/{rhc-rest → rhc/rest}/domain.rb +1 -1
  58. data/lib/{rhc-rest → rhc/rest}/key.rb +11 -1
  59. data/lib/{rhc-rest → rhc/rest}/user.rb +1 -1
  60. data/lib/rhc/ssh_key_helpers.rb +10 -1
  61. data/lib/rhc/targz.rb +7 -8
  62. data/lib/rhc/usage_templates/command_help.erb +7 -6
  63. data/lib/rhc/usage_templates/help.erb +6 -9
  64. data/lib/rhc/usage_templates/missing_help.erb +1 -0
  65. data/lib/rhc/version.rb +2 -2
  66. data/lib/rhc/wizard.rb +4 -9
  67. data/spec/coverage_helper.rb +2 -2
  68. data/spec/rest_spec_helper.rb +66 -16
  69. data/spec/rhc/cli_spec.rb +16 -5
  70. data/spec/rhc/command_spec.rb +61 -6
  71. data/spec/rhc/commands/domain_spec.rb +50 -27
  72. data/spec/rhc/commands/port-forward_spec.rb +133 -0
  73. data/spec/rhc/commands/setup_spec.rb +2 -2
  74. data/spec/rhc/commands/sshkey_spec.rb +141 -0
  75. data/spec/rhc/common_spec.rb +1 -1
  76. data/spec/rhc/config_spec.rb +6 -4
  77. data/spec/rhc/helpers_spec.rb +0 -21
  78. data/spec/rhc/rest_application_spec.rb +7 -7
  79. data/spec/rhc/rest_client_spec.rb +87 -24
  80. data/spec/rhc/rest_spec.rb +36 -36
  81. data/spec/rhc/wizard_spec.rb +3 -3
  82. data/spec/spec.opts +1 -0
  83. data/spec/spec_helper.rb +3 -3
  84. metadata +61 -31
  85. data/lib/rhc-rest/exceptions/exceptions.rb +0 -75
  86. data/test/functional/application_test.rb +0 -71
  87. data/test/functional/domain_test.rb +0 -123
  88. data/test/functional/test_credentials.rb +0 -5
  89. data/test/sample-usage.rb +0 -122
  90. data/test/support/server.rb +0 -14
  91. data/test/support/testcase.rb +0 -3
  92. data/test/test_helper.rb +0 -4
  93. data/test/unit/command_test.rb +0 -19
@@ -0,0 +1,81 @@
1
+ require 'rhc/commands/base'
2
+ require 'uri'
3
+
4
+ module RHC::Commands
5
+ class PortForward < Base
6
+
7
+ IP_AND_PORT = /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\:[0-9]{1,5}/
8
+
9
+ summary "Forward remote ports to the workstation"
10
+ option ["-n", "--namespace namespace"], "Namespace of the application you are port forwarding to", :context => :namespace_context, :required => true
11
+ argument :app, "Application you are port forwarding to (required)", ["-a", "--app app"]
12
+ option ["--timeout timeout"], "Timeout, in seconds, for the session"
13
+ def run(app)
14
+
15
+ rest_domain = rest_client.find_domain options.namespace
16
+ rest_app = rest_domain.find_application app
17
+
18
+ raise RHC::ScaledApplicationsNotSupportedException.new "This utility does not currently support scaled applications. You will need to set up port forwarding manually." if (rest_app.embedded.keys.any?{ |k| k =~ /\Ahaproxy/ })
19
+
20
+ ssh_uri = URI.parse(rest_app.ssh_url)
21
+ say "Using #{rest_app.ssh_url}..." if options.debug
22
+
23
+ hosts_and_ports = []
24
+ hosts_and_ports_descriptions = []
25
+
26
+ begin
27
+
28
+ say "Checking available ports..."
29
+
30
+ Net::SSH.start(ssh_uri.host, ssh_uri.user) do |ssh|
31
+
32
+ ssh.exec! "rhc-list-ports" do |channel, stream, data|
33
+ if stream == :stderr
34
+ data.each_line do |line|
35
+ line.chomp!
36
+ raise RHC::PermissionDeniedException.new "Permission denied." if line =~ /permission denied/i
37
+ hosts_and_ports_descriptions << line if line.index(IP_AND_PORT)
38
+ end
39
+ else
40
+ data.each_line do |line|
41
+ line.chomp!
42
+ hosts_and_ports << line if ((not line =~ /scale/i) and IP_AND_PORT.match(line))
43
+ end
44
+ end
45
+ end
46
+
47
+ raise RHC::NoPortsToForwardException.new "There are no available ports to forward for this application. Your application may be stopped." if hosts_and_ports.length == 0
48
+
49
+ hosts_and_ports_descriptions.each { |description| say "Binding #{description}..." }
50
+
51
+ begin
52
+ Net::SSH.start(ssh_uri.host, ssh_uri.user) do |ssh|
53
+ say "Forwarding ports, use ctl + c to stop"
54
+ hosts_and_ports.each do |host_and_port|
55
+ host, port = host_and_port.split(/:/)
56
+ ssh.forward.local(host, port.to_i, host, port.to_i)
57
+ end
58
+ ssh.loop { true }
59
+ end
60
+ rescue Interrupt
61
+ results { say "Ending port forward" }
62
+ return 0
63
+ end
64
+
65
+ end
66
+
67
+ rescue Timeout::Error, Errno::EADDRNOTAVAIL, Errno::EADDRINUSE, Errno::EHOSTUNREACH, Errno::ECONNREFUSED, Net::SSH::AuthenticationFailed => e
68
+ ssh_cmd = "ssh -N "
69
+ hosts_and_ports.each { |port| ssh_cmd << "-L #{port}:#{port} " }
70
+ ssh_cmd << "#{ssh_uri.user}@#{ssh_uri.host}"
71
+ raise RHC::PortForwardFailedException.new("#{e.message if options.debug}\nError trying to forward ports. You can try to forward manually by running:\n" + ssh_cmd)
72
+ end
73
+
74
+ return 0
75
+ end
76
+ end
77
+ end
78
+
79
+ # mock for windows
80
+ if defined?(UNIXServer) != 'constant' or UNIXServer.class != Class then class UNIXServer; end; end
81
+
@@ -6,7 +6,7 @@ module RHC::Commands
6
6
  class Setup < Base
7
7
  suppress_wizard
8
8
 
9
- summary "Runs the setup wizard to configure your OpenShift account."
9
+ summary "Easy to use wizard for getting started with OpenShift."
10
10
  def run
11
11
  RHC::RerunWizard.new(config).run ? 0 : 1
12
12
  end
@@ -0,0 +1,95 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'rhc/commands/base'
4
+
5
+ module RHC::Commands
6
+ class Sshkey < Base
7
+ include RHC::SSHKeyHelpers
8
+
9
+ summary 'Manage multiple keys for the registered rhcloud user.'
10
+ syntax '<action>'
11
+ default_action :list
12
+
13
+ summary 'Display all the SSH keys for the user account'
14
+ syntax ''
15
+ option ["--timeout timeout"], "Timeout, in seconds, for the session"
16
+ def list
17
+ ssh_keys = rest_client.sshkeys
18
+ results do
19
+ result = ''
20
+
21
+ ssh_keys.each do |key|
22
+ result += format(key, erb)
23
+ end
24
+
25
+ say result
26
+ end
27
+
28
+ 0
29
+ end
30
+
31
+ summary 'List the SSH key with the given name'
32
+ syntax '<name>'
33
+ argument :name, 'SSH key to display', []
34
+ option ["--timeout timeout"], "Timeout, in seconds, for the session"
35
+ def show(name)
36
+ key = rest_client.find_key(name)
37
+ say format(key, erb)
38
+
39
+ 0
40
+ end
41
+
42
+ summary 'Add SSH key to the user account'
43
+ syntax '<name> <SSH Key file>'
44
+ argument :name, 'Name for this key', []
45
+ argument :key, 'SSH public key filepath', []
46
+ option ["--timeout timeout"], "Timeout, in seconds, for the session"
47
+ def add(name, key)
48
+ begin
49
+ file = File.open(key)
50
+ rescue Errno::ENOENT => e
51
+ raise ::RHC::KeyFileNotExistentException.new("File '#{key}' does not exist.")
52
+ rescue Errno::EACCES => e
53
+ raise ::RHC::KeyFileAccessDeniedException.new("Access denied to '#{key}'.")
54
+ end
55
+ type, content, comment = file.gets.chomp.split
56
+
57
+ # validate the user input before sending it to the server
58
+ begin
59
+ Net::SSH::KeyFactory.load_data_public_key "#{type} #{content}"
60
+ rescue NotImplementedError, Net::SSH::Exception => e
61
+ raise ::RHC::KeyDataInvalidException.new("File '#{key}' contains invalid data")
62
+ end
63
+
64
+ rest_client.add_key(name, content, type)
65
+ results { say "SSH key #{key} has been added as '#{name}'" }
66
+
67
+ 0
68
+ end
69
+
70
+ summary 'Remove SSH key from the user account'
71
+ syntax '<name>'
72
+ alias_action :delete
73
+ argument :name, 'SSH key to remove', []
74
+ option ["--timeout timeout"], "Timeout, in seconds, for the session"
75
+ def remove(name)
76
+ rest_client.delete_key(name)
77
+ results { say "SSH key '#{name}' has been removed" }
78
+
79
+ 0
80
+ end
81
+
82
+ private
83
+ # shared ERB template for formatting SSH Key
84
+ def erb
85
+ return @erb if @erb # cache
86
+ @erb = ERB.new <<-FORMAT
87
+ Name: <%= key.name %>
88
+ Type: <%= key.type %>
89
+ Fingerprint: <%= key.fingerprint %>
90
+
91
+ FORMAT
92
+ end
93
+
94
+ end
95
+ end
data/lib/rhc/config.rb CHANGED
@@ -2,77 +2,95 @@ require 'rhc/vendor/parseconfig'
2
2
  require 'rhc/core_ext'
3
3
 
4
4
  module RHC
5
- module Config
6
- def self.read_config_files
7
- @@global_config = RHC::Vendor::ParseConfig.new(@@global_config_path) if File.exists?(@@global_config_path)
8
- @@local_config = RHC::Vendor::ParseConfig.new(File.expand_path(@@local_config_path)) if File.exists?(@@local_config_path)
5
+ class Config
6
+
7
+ def self.default
8
+ @default ||= begin
9
+ RHC::Config.new
10
+ end.tap do |c|
11
+ c.read_config_files
12
+ end
13
+ end
14
+
15
+ def self.method_missing(method, *args, &block)
16
+ if default.respond_to?(method)
17
+ default.send(method, *args, &block)
18
+ else
19
+ raise NoMethodError, method
20
+ end
21
+ end
22
+
23
+ def self.initialize
24
+ @default = nil
25
+ default
26
+ end
27
+
28
+ def initialize
29
+ set_defaults
30
+
31
+ _gem_cfg = File.join(File.expand_path(File.dirname(__FILE__) + "/../../conf"), @conf_name)
32
+ @global_config_path = File.exists?(@_linux_cfg) ? @_linux_cfg : _gem_cfg
33
+ end
34
+
35
+ def read_config_files
36
+ @global_config = RHC::Vendor::ParseConfig.new(@global_config_path) if File.exists?(@global_config_path)
37
+ @local_config = RHC::Vendor::ParseConfig.new(File.expand_path(@local_config_path)) if File.exists?(@local_config_path)
9
38
  rescue Errno::EACCES => e
10
39
  raise Errno::EACCES.new("Could not open config file: #{e.message}")
11
40
  end
12
41
 
13
- def self.set_defaults
14
- @@defaults = RHC::Vendor::ParseConfig.new()
15
- @@global_config = nil
16
- @@local_config = nil
17
- @@opts_config = nil # config file passed in the options
18
- @@opts = RHC::Vendor::ParseConfig.new() # option switches that override config file
19
- @@default_proxy = nil
20
- @@env_config = RHC::Vendor::ParseConfig.new()
42
+ def set_defaults
43
+ @defaults = RHC::Vendor::ParseConfig.new()
44
+ @global_config = nil
45
+ @local_config = nil
46
+ @opts_config = nil # config file passed in the options
47
+ @opts = RHC::Vendor::ParseConfig.new() # option switches that override config file
48
+ @default_proxy = nil
49
+ @env_config = RHC::Vendor::ParseConfig.new()
21
50
 
22
- @@defaults.add('libra_server', 'openshift.redhat.com')
23
- @@env_config.add('libra_server', ENV['LIBRA_SERVER']) if ENV['LIBRA_SERVER']
51
+ @defaults.add('libra_server', 'openshift.redhat.com')
52
+ @env_config.add('libra_server', ENV['LIBRA_SERVER']) if ENV['LIBRA_SERVER']
24
53
  #
25
54
  # Config paths... /etc/openshift/express.conf or $GEM/conf/express.conf -> ~/.openshift/express.conf
26
55
  #
27
- @@conf_name = 'express.conf'
28
- @@home_dir = File.expand_path("~")
29
- @@home_conf_path = File.join(@@home_dir, '.openshift')
30
- @@local_config_path = File.join(@@home_conf_path, @@conf_name)
56
+ @conf_name = 'express.conf'
57
+ @home_dir = File.expand_path("~")
58
+ @home_conf_path = File.join(@home_dir, '.openshift')
59
+ @local_config_path = File.join(@home_conf_path, @conf_name)
31
60
 
32
61
  # config path passed in on the command line
33
- @@opts_config_path = nil
62
+ @opts_config_path = nil
34
63
 
35
64
  # authoritive config path
36
- # this can be @@local_config_path or @@opts_config_path
37
- # @@opts_config_path trumps
65
+ # this can be @local_config_path or @opts_config_path
66
+ # @opts_config_path trumps
38
67
  # this is used to determine where config options should be written to
39
68
  # when a script modifies the config such as in rhc setup
40
- @@config_path = @@local_config_path
69
+ @config_path = @local_config_path
41
70
 
42
- @@ssh_priv_key_file_path = "#{@@home_dir}/.ssh/id_rsa"
43
- @@ssh_pub_key_file_path = "#{@@home_dir}/.ssh/id_rsa.pub"
44
-
45
- @@_linux_cfg = '/etc/openshift/' + @@conf_name
46
- @@global_config_path = @@_linux_cfg
47
- end
71
+ @ssh_priv_key_file_path = "#{@home_dir}/.ssh/id_rsa"
72
+ @ssh_pub_key_file_path = "#{@home_dir}/.ssh/id_rsa.pub"
48
73
 
49
- def self.initialize
50
- set_defaults
51
-
52
- _gem_cfg = File.join(File.expand_path(File.dirname(__FILE__) + "/../../conf"), @@conf_name)
53
- @@global_config_path = File.exists?(@@_linux_cfg) ? @@_linux_cfg : _gem_cfg
54
-
55
- read_config_files
74
+ @_linux_cfg = '/etc/openshift/' + @conf_name
75
+ @global_config_path = @_linux_cfg
56
76
  end
57
77
 
58
- self.initialize
59
-
60
78
  # used for tests
61
- def self.home_dir=(home_dir)
62
- @@home_dir=home_dir
63
- @@home_conf_path = File.join(@@home_dir, '.openshift')
64
- @@local_config_path = File.join(@@home_conf_path, @@conf_name)
65
- @@local_config = nil
66
- @@local_config = RHC::Vendor::ParseConfig.new(File.expand_path(@@local_config_path)) if File.exists?(@@local_config_path)
67
- @@ssh_priv_key_file_path = "#{@@home_dir}/.ssh/id_rsa"
68
- @@ssh_pub_key_file_path = "#{@@home_dir}/.ssh/id_rsa.pub"
79
+ def home_dir=(home_dir)
80
+ @home_dir=home_dir
81
+ @home_conf_path = File.join(@home_dir, '.openshift')
82
+ @local_config_path = File.join(@home_conf_path, @conf_name)
83
+ @local_config = nil
84
+ @local_config = RHC::Vendor::ParseConfig.new(File.expand_path(@local_config_path)) if File.exists?(@local_config_path)
85
+ @ssh_priv_key_file_path = "#{@home_dir}/.ssh/id_rsa"
86
+ @ssh_pub_key_file_path = "#{@home_dir}/.ssh/id_rsa.pub"
69
87
  end
70
88
 
71
- def self.[](key)
89
+ def [](key)
72
90
  raise KeyError("Please use RHC::Config.password to access the password config") if key == "password"
73
91
 
74
92
  # evaluate in cascading order
75
- configs = [@@opts, @@opts_config, @@env_config, @@local_config, @@global_config, @@defaults]
93
+ configs = [@opts, @opts_config, @env_config, @local_config, @global_config, @defaults]
76
94
  result = nil
77
95
  configs.each do |conf|
78
96
  result = conf[key] if !conf.nil?
@@ -82,45 +100,37 @@ module RHC
82
100
  result
83
101
  end
84
102
 
85
- def self.get_value(key)
103
+ def get_value(key)
86
104
  self[key]
87
105
  end
88
106
 
89
- def self.username
107
+ def username
90
108
  self['default_rhlogin']
91
109
  end
92
110
 
93
111
  # Public: configures the default user for this session
94
- def self.config_user(username)
95
- @@defaults.add('default_rhlogin', username)
112
+ def config_user(username)
113
+ @defaults.add('default_rhlogin', username)
96
114
  end
97
115
 
98
- def self.opts_login=(username)
99
- @@opts.add('default_rhlogin', username)
116
+ def opts_login=(username)
117
+ @opts.add('default_rhlogin', username)
100
118
  end
101
119
 
102
120
  # password is not allowed in config files and can only be passed on comman line
103
- def self.password=(password)
104
- @@opts.add('password', password)
121
+ def password=(password)
122
+ @opts.add('password', password)
105
123
  end
106
124
 
107
- def self.password
108
- @@opts['password']
125
+ def password
126
+ @opts['password']
109
127
  end
110
128
 
111
- def self.noprompt(bool)
112
- @@opts.add('noprompt', bool)
113
- end
114
-
115
- def self.noprompt?
116
- @@opts['noprompt']
117
- end
118
-
119
- def self.set_local_config(confpath, must_exist=true)
129
+ def set_local_config(confpath, must_exist=true)
120
130
  begin
121
- @@local_config_path = File.expand_path(confpath)
122
- @@config_path = @@local_config_path if @@opts_config_path.nil?
123
- @@local_config = RHC::Vendor::ParseConfig.new(@@local_config_path)
131
+ @local_config_path = File.expand_path(confpath)
132
+ @config_path = @local_config_path if @opts_config_path.nil?
133
+ @local_config = RHC::Vendor::ParseConfig.new(@local_config_path)
124
134
  rescue Errno::EACCES => e
125
135
  if must_exist
126
136
  raise Errno::EACCES.new "Could not open config file: #{e.message}"
@@ -128,17 +138,17 @@ module RHC
128
138
  end
129
139
  end
130
140
 
131
- def self.set_opts_config(confpath)
141
+ def set_opts_config(confpath)
132
142
  begin
133
- @@opts_config_path = File.expand_path(confpath)
134
- @@config_path = @@opts_config_path
135
- @@opts_config = RHC::Vendor::ParseConfig.new(@@opts_config_path) if File.exists?(@@opts_config_path)
143
+ @opts_config_path = File.expand_path(confpath)
144
+ @config_path = @opts_config_path
145
+ @opts_config = RHC::Vendor::ParseConfig.new(@opts_config_path) if File.exists?(@opts_config_path)
136
146
  rescue Errno::EACCES => e
137
147
  raise Errno::EACCES.new "Could not open config file: #{e.message}"
138
148
  end
139
149
  end
140
150
 
141
- def self.check_cpath(opts)
151
+ def check_cpath(opts)
142
152
  unless opts["config"].nil?
143
153
  opts_config_path = File.expand_path(opts["config"])
144
154
  if !File.readable?(opts_config_path)
@@ -149,25 +159,20 @@ module RHC
149
159
  end
150
160
  end
151
161
 
152
- def self.has_global_config?
153
- !@@global_config.nil?
154
- end
155
-
156
- def self.has_local_config?
157
- !@@local_config.nil?
162
+ def has_global_config?
163
+ !@global_config.nil?
158
164
  end
159
165
 
160
- def self.has_opts_config?
161
- !@@opts_config.nil?
166
+ def has_local_config?
167
+ !@local_config.nil?
162
168
  end
163
169
 
164
- # Public: convinience function to see if we should run the wizard
165
- def self.should_run_wizard?
166
- not (has_local_config? or has_opts_config? or noprompt?)
170
+ def has_opts_config?
171
+ !@opts_config.nil?
167
172
  end
168
173
 
169
- def self.should_run_ssh_wizard?
170
- not File.exists? @@ssh_priv_key_file_path
174
+ def should_run_ssh_wizard?
175
+ not File.exists? @ssh_priv_key_file_path
171
176
  end
172
177
 
173
178
  ##
@@ -176,46 +181,46 @@ module RHC
176
181
  # authoritive configuration path
177
182
  # this is used to determine where config options should be written to
178
183
  # when a script modifies the config such as in rhc setup
179
- def self.config_path
180
- @@config_path
184
+ def config_path
185
+ @config_path
181
186
  end
182
187
 
183
- def self.local_config_path
184
- @@local_config_path
188
+ def local_config_path
189
+ @local_config_path
185
190
  end
186
191
 
187
- def self.home_conf_path
188
- @@home_conf_path
192
+ def home_conf_path
193
+ @home_conf_path
189
194
  end
190
195
 
191
- def self.home_dir
192
- @@home_dir
196
+ def home_dir
197
+ @home_dir
193
198
  end
194
199
 
195
- def self.ssh_pub_key_file_path
196
- @@ssh_pub_key_file_path
200
+ def ssh_pub_key_file_path
201
+ @ssh_pub_key_file_path
197
202
  end
198
203
 
199
- def self.default_rhlogin
204
+ def default_rhlogin
200
205
  get_value('default_rhlogin')
201
206
  end
202
207
 
203
- def self.default_proxy
208
+ def default_proxy
204
209
  #
205
210
  # Check for proxy environment
206
211
  #
207
- if @@default_proxy.nil?
212
+ if @default_proxy.nil?
208
213
  if ENV['http_proxy']
209
214
  if ENV['http_proxy']!~/^(\w+):\/\// then
210
215
  ENV['http_proxy']="http://" + ENV['http_proxy']
211
216
  end
212
217
  proxy_uri=URI.parse(ENV['http_proxy'])
213
- @@default_proxy = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
218
+ @default_proxy = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
214
219
  else
215
- @@default_proxy = Net::HTTP
220
+ @default_proxy = Net::HTTP
216
221
  end
217
222
  end
218
- @@default_proxy
223
+ @default_proxy
219
224
  end
220
225
  end
221
226
  end