rhc 0.97.17 → 0.98.16

Sign up to get free protection for your applications and to get access to all the features.
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