rhc 1.17.6 → 1.18.2

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.
@@ -74,7 +74,7 @@ module RHC::Auth
74
74
  @can_get_token = client.supports_sessions? && @allows_tokens
75
75
 
76
76
  if has_token
77
- warn "Your authorization token has expired. Please sign in now to continue."
77
+ warn "Your authorization token has expired. Please sign in now to continue on #{openshift_server}."
78
78
  elsif @can_get_token
79
79
  info "Please sign in to start a new session to #{openshift_server}."
80
80
  end
@@ -92,14 +92,14 @@ module RHC::Commands
92
92
 
93
93
  paragraph do
94
94
  header "Application Options"
95
- table([["Domain:", options.namespace],
95
+ say table([["Domain:", options.namespace],
96
96
  ["Cartridges:", cart_names],
97
97
  (["Source Code:", options.from_code] if options.from_code),
98
98
  ["Gear Size:", options.gear_size || "default"],
99
99
  ["Scaling:", options.scaling ? "yes" : "no"],
100
100
  (["Environment Variables:", env.map{|item| "#{item.name}=#{item.value}"}.join(', ')] if env.present?),
101
101
  ].compact
102
- ).each { |s| say " #{s}" }
102
+ )
103
103
  end
104
104
 
105
105
  paragraph do
@@ -165,7 +165,11 @@ module RHC::Commands
165
165
  if options.git
166
166
  section(:now => true, :top => 1, :bottom => 1) do
167
167
  begin
168
- repo_dir = git_clone_application(rest_app)
168
+ if has_git?
169
+ repo_dir = git_clone_application(rest_app)
170
+ else
171
+ warn "You do not have git installed, so your application's git repo will not be cloned"
172
+ end
169
173
  rescue RHC::GitException => e
170
174
  warn "#{e}"
171
175
  unless RHC::Helpers.windows? and windows_nslookup_bug?(rest_app)
@@ -42,7 +42,7 @@ module RHC::Commands
42
42
  server maximum, you will be given the default value.
43
43
  DESC
44
44
  def add
45
- unless options.scopes
45
+ unless options.scopes.to_s.strip.present?
46
46
  say "When adding an authorization, you must specify which permissions clients will have."
47
47
  scope_help
48
48
  say "Run 'rhc authorization add --help' to see more options"
@@ -16,11 +16,16 @@ module RHC::Commands
16
16
  # TODO: Implement default values for arguments once ffranz has added context arguments
17
17
  # argument :directory, "The name of a new directory to clone into", [], :default => nil
18
18
  def run(app_name)
19
- rest_app = find_app
20
- dir = git_clone_application(rest_app)
21
- success "Your application Git repository has been cloned to '#{system_path(dir)}'"
19
+ if has_git?
20
+ rest_app = find_app
21
+ dir = git_clone_application(rest_app)
22
+ success "Your application Git repository has been cloned to '#{system_path(dir)}'"
22
23
 
23
- 0
24
+ 0
25
+ else
26
+ error "You do not have git installed. In order to fully interact with OpenShift you will need to install and configure a git client."
27
+ 2
28
+ end
24
29
  end
25
30
 
26
31
  private
@@ -3,8 +3,12 @@ require 'fileutils'
3
3
 
4
4
  module RHC
5
5
  module GitHelpers
6
+ def git_cmd
7
+ "git"
8
+ end
9
+
6
10
  def git_version
7
- @git_version ||= `git --version 2>&1`.strip #:nocov:
11
+ @git_version ||= `#{git_cmd} --version 2>&1`.strip #:nocov:
8
12
  end
9
13
 
10
14
  def has_git?
@@ -46,7 +50,9 @@ module RHC
46
50
 
47
51
  # :nocov: These all call external binaries so test them in cucumber
48
52
  def git_config_get(key)
49
- config_get_cmd = "git config --get #{key}"
53
+ return nil unless has_git?
54
+
55
+ config_get_cmd = "#{git_cmd} config --get #{key}"
50
56
  value = %x[#{config_get_cmd}].strip
51
57
  debug "Git config '#{config_get_cmd}' returned '#{value}'"
52
58
  value = nil if $?.exitstatus != 0 or value.empty?
@@ -55,8 +61,8 @@ module RHC
55
61
  end
56
62
 
57
63
  def git_config_set(key, value)
58
- unset_cmd = "git config --unset-all #{key}"
59
- config_cmd = "git config --add #{key} #{value}"
64
+ unset_cmd = "#{git_cmd} config --unset-all #{key}"
65
+ config_cmd = "#{git_cmd} config --add #{key} #{value}"
60
66
  debug "Adding #{key} = #{value} to git config"
61
67
  commands = [unset_cmd, config_cmd]
62
68
  commands.each do |cmd|
@@ -70,7 +76,7 @@ module RHC
70
76
  def git_clone_repo(git_url, repo_dir)
71
77
  # quote the repo to avoid input injection risk
72
78
  destination = (repo_dir ? " \"#{repo_dir}\"" : "")
73
- cmd = "git clone #{git_url}#{destination}"
79
+ cmd = "#{git_cmd} clone #{git_url}#{destination}"
74
80
  debug "Running #{cmd}"
75
81
 
76
82
  status, stdout, stderr = run_with_tee(cmd)
@@ -391,7 +391,7 @@ describe RHC::Auth::Token do
391
391
  context "with a token" do
392
392
  let(:default_options){ {:use_authorization_tokens => true, :token => 'foo'} }
393
393
  it("should invoke raise an error on retry because sessions are not supported") do
394
- subject.should_receive(:warn).with("Your authorization token has expired. Please sign in now to continue.")
394
+ subject.should_receive(:warn).with("Your authorization token has expired. Please sign in now to continue on #{subject.openshift_server}.")
395
395
  auth.should_receive(:retry_auth?).with(response, client).and_return true
396
396
  subject.retry_auth?(response, client).should be_true
397
397
  #expect{ subject.retry_auth?(response, client) }.to raise_error RHC::Rest::AuthorizationsNotSupported
@@ -411,6 +411,15 @@ describe RHC::Commands::App do
411
411
  end
412
412
  end
413
413
 
414
+ context 'when run without git installed' do
415
+ before do
416
+ @instance.stub(:has_git?) { false }
417
+ end
418
+ it "should print out git warning" do
419
+ run_output.should match("You do not have git installed")
420
+ end
421
+ end
422
+
414
423
  context 'when run with windows and no nslookup bug' do
415
424
  before do
416
425
  RHC::Helpers.stub(:windows?) { true }
@@ -126,6 +126,16 @@ describe RHC::Commands::Authorization do
126
126
 
127
127
  expect_an_unsupported_message
128
128
 
129
+ context "with empty scope options" do
130
+ let(:arguments) { ['authorization', 'add', '--scopes', ' ', '--note', 'a_note', '--expires-in', '300'] }
131
+ using_command_instance
132
+ with_authorization
133
+ before{ instance.should_receive(:scope_help) }
134
+
135
+ it('should display the scope help') { command_output.should =~ /When adding an authorization.*to see more options/m }
136
+ it{ expect{ run_command }.to exit_with_code(0) }
137
+ end
138
+
129
139
  context "with options" do
130
140
  let(:arguments) { ['authorization', 'add', '--scope', 'foo,bar', '--note', 'a_note', '--expires-in', '300'] }
131
141
  with_authorization
@@ -32,6 +32,15 @@ describe RHC::Commands::GitClone do
32
32
  describe 'git-clone' do
33
33
  let(:arguments) { ['app', 'git-clone', 'app1'] }
34
34
 
35
+ context 'when run without git installed' do
36
+ before do
37
+ @instance.stub(:has_git?) { false }
38
+ end
39
+ it "should print out git warning" do
40
+ run_output.should match("You do not have git installed")
41
+ end
42
+ end
43
+
35
44
  context "stubbing git_clone_repo" do
36
45
  context "reports success successfully" do
37
46
  before do
@@ -269,6 +269,12 @@ describe AllRhcHelpers do
269
269
  before{ subject.stub(:git_version){ raise "Fake Exception" } }
270
270
  its(:has_git?) { should be_false }
271
271
 
272
+ context "without git" do
273
+ before{ subject.stub(:git_cmd){ "nonexistent_git" } }
274
+ its(:has_git?) { should be_false }
275
+ it { subject.git_config_get('key').should == nil }
276
+ end
277
+
272
278
  context "git clone repo" do
273
279
  let(:stdout){ 'fake git clone' }
274
280
  let(:exit_status){ 0 }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhc
3
3
  version: !ruby/object:Gem::Version
4
- hash: 95
4
+ hash: 91
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 17
9
- - 6
10
- version: 1.17.6
8
+ - 18
9
+ - 2
10
+ version: 1.18.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Red Hat
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-12-02 00:00:00 Z
18
+ date: 2013-12-11 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: net-ssh