rhc 1.18.2 → 1.19.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,9 +10,9 @@ _rhc()
10
10
  if [[ "$cur" == -* ]]; then
11
11
  opts="--always-prefix --clean --config --debug --insecure --limit --mock --noprompt --password --raw --rhlogin --server --ssl-ca-file --ssl-client-cert-file --ssl-version --timeout --token"
12
12
  elif [ -z $cur ]; then
13
- opts="account alias alias-add alias-delete-cert alias-list alias-remove alias-update-cert app app-configure app-create app-delete app-deploy app-force-stop app-reload app-restart app-show app-start app-stop app-tidy apps authorization authorization-add authorization-delete authorization-delete-all authorization-list cartridge cartridge-add cartridge-list cartridge-reload cartridge-remove cartridge-restart cartridge-scale cartridge-show cartridge-start cartridge-status cartridge-stop cartridge-storage deployment-activate deployment-list deployment-show domain domain-configure domain-create domain-delete domain-leave domain-list domain-rename domain-show env env-list env-set env-show env-unset git-clone logout member member-add member-list member-remove port-forward server setup snapshot snapshot-restore snapshot-save ssh sshkey sshkey-add sshkey-list sshkey-remove sshkey-show tail threaddump"
13
+ opts="account alias alias-add alias-delete-cert alias-list alias-remove alias-update-cert app app-configure app-create app-delete app-deploy app-force-stop app-reload app-restart app-scale-down app-scale-up app-show app-start app-stop app-tidy apps authorization authorization-add authorization-delete authorization-delete-all authorization-list cartridge cartridge-add cartridge-list cartridge-reload cartridge-remove cartridge-restart cartridge-scale cartridge-show cartridge-start cartridge-status cartridge-stop cartridge-storage deployment deployment-activate deployment-list deployment-show domain domain-configure domain-create domain-delete domain-leave domain-list domain-rename domain-show env env-list env-set env-show env-unset git-clone logout member member-add member-list member-remove port-forward server setup snapshot snapshot-restore snapshot-save ssh sshkey sshkey-add sshkey-list sshkey-remove sshkey-show tail threaddump"
14
14
  else
15
- opts="account account-logout activate-deployment add-alias add-authorization add-cartridge add-member add-sshkey alias alias-add alias-delete-cert alias-list alias-remove alias-update-cert aliases app app-configure app-create app-delete app-deploy app-env app-force-stop app-reload app-restart app-show app-snapshot app-ssh app-start app-stop app-tidy apps authorization authorization-add authorization-delete authorization-delete-all authorization-list authorizations cartridge cartridge-add cartridge-list cartridge-reload cartridge-remove cartridge-restart cartridge-scale cartridge-show cartridge-start cartridge-status cartridge-stop cartridge-storage cartridges configure-app configure-domain create-app create-domain delete-all-authorization delete-app delete-authorization delete-cert-alias delete-domain deploy deploy-app deployment deployment-activate deployment-list deployment-show deployments domain domain-configure domain-create domain-delete domain-leave domain-list domain-rename domain-show domains env env-add env-list env-remove env-set env-show env-unset force-stop-app git-clone leave-domain list-alias list-authorization list-cartridge list-deployment list-domain list-env list-member list-sshkey logout member member-add member-list member-remove members port-forward reload-app reload-cartridge remove-alias remove-cartridge remove-member remove-sshkey rename-domain restart-app restart-cartridge restore-snapshot save-snapshot scale-cartridge server set-env setup show-app show-cartridge show-deployment show-domain show-env show-sshkey snapshot snapshot-restore snapshot-save ssh sshkey sshkey-add sshkey-list sshkey-remove sshkey-show start-app start-cartridge status-cartridge stop-app stop-cartridge storage-cartridge tail threaddump tidy-app unset-env update-cert-alias"
15
+ opts="account account-logout activate-deployment add-alias add-authorization add-cartridge add-member add-sshkey alias alias-add alias-delete-cert alias-list alias-remove alias-update-cert aliases app app-configure app-create app-delete app-deploy app-env app-force-stop app-reload app-restart app-scale-down app-scale-up app-show app-snapshot app-ssh app-start app-stop app-tidy apps authorization authorization-add authorization-delete authorization-delete-all authorization-list authorizations cartridge cartridge-add cartridge-list cartridge-reload cartridge-remove cartridge-restart cartridge-scale cartridge-show cartridge-start cartridge-status cartridge-stop cartridge-storage cartridges configure-app configure-domain create-app create-domain delete-all-authorization delete-app delete-authorization delete-cert-alias delete-domain deploy deploy-app deployment deployment-activate deployment-list deployment-show deployments domain domain-configure domain-create domain-delete domain-leave domain-list domain-rename domain-show domains env env-add env-list env-remove env-set env-show env-unset force-stop-app git-clone leave-domain list-alias list-authorization list-cartridge list-deployment list-domain list-env list-member list-sshkey logout member member-add member-list member-remove members port-forward reload-app reload-cartridge remove-alias remove-cartridge remove-member remove-sshkey rename-domain restart-app restart-cartridge restore-snapshot save-snapshot scale-cartridge scale-down-app scale-up-app server set-env setup show-app show-cartridge show-deployment show-domain show-env show-sshkey snapshot snapshot-restore snapshot-save ssh sshkey sshkey-add sshkey-list sshkey-remove sshkey-show start-app start-cartridge status-cartridge stop-app stop-cartridge storage-cartridge tail threaddump tidy-app unset-env update-cert-alias"
16
16
  fi
17
17
  else
18
18
  prev="${COMP_WORDS[@]:0:COMP_CWORD}"
@@ -70,7 +70,7 @@ _rhc()
70
70
 
71
71
  "rhc add-cartridge")
72
72
  if [[ "$cur" == -* ]]; then
73
- opts="--app --application-id --cartridge --env --namespace"
73
+ opts="--app --application-id --cartridge --env --gear-size --namespace"
74
74
  else
75
75
  opts=""
76
76
  fi
@@ -86,7 +86,7 @@ _rhc()
86
86
 
87
87
  "rhc add-sshkey")
88
88
  if [[ "$cur" == -* ]]; then
89
- opts="--confirm"
89
+ opts="--confirm --content --type"
90
90
  else
91
91
  opts=""
92
92
  fi
@@ -192,7 +192,7 @@ _rhc()
192
192
  if [[ "$cur" == -* ]]; then
193
193
  opts=""
194
194
  else
195
- opts="create delete start stop force-stop restart reload tidy show deploy configure env snapshot"
195
+ opts="env snapshot create delete start stop scale-up scale-down force-stop restart reload tidy show deploy configure"
196
196
  fi
197
197
  ;;
198
198
 
@@ -206,7 +206,7 @@ _rhc()
206
206
 
207
207
  "rhc app create")
208
208
  if [[ "$cur" == -* ]]; then
209
- opts="--app --auto-deploy --deployment-branch --dns --enable-jenkins --env --from-code --gear-size --git --keep-deployments --namespace --no-auto-deploy --no-dns --no-git --no-keys --repo --scaling --type"
209
+ opts="--app --dns --enable-jenkins --env --from-code --gear-size --git --namespace --no-dns --no-git --no-keys --repo --scaling --type"
210
210
  else
211
211
  opts=""
212
212
  fi
@@ -260,6 +260,22 @@ _rhc()
260
260
  fi
261
261
  ;;
262
262
 
263
+ "rhc app scale-down")
264
+ if [[ "$cur" == -* ]]; then
265
+ opts="--app --application-id --namespace"
266
+ else
267
+ opts=""
268
+ fi
269
+ ;;
270
+
271
+ "rhc app scale-up")
272
+ if [[ "$cur" == -* ]]; then
273
+ opts="--app --application-id --namespace"
274
+ else
275
+ opts=""
276
+ fi
277
+ ;;
278
+
263
279
  "rhc app show")
264
280
  if [[ "$cur" == -* ]]; then
265
281
  opts="--app --application-id --configuration --gears --namespace --state"
@@ -318,7 +334,7 @@ _rhc()
318
334
 
319
335
  "rhc app-create")
320
336
  if [[ "$cur" == -* ]]; then
321
- opts="--app --auto-deploy --deployment-branch --dns --enable-jenkins --env --from-code --gear-size --git --keep-deployments --namespace --no-auto-deploy --no-dns --no-git --no-keys --repo --scaling --type"
337
+ opts="--app --dns --enable-jenkins --env --from-code --gear-size --git --namespace --no-dns --no-git --no-keys --repo --scaling --type"
322
338
  else
323
339
  opts=""
324
340
  fi
@@ -372,6 +388,22 @@ _rhc()
372
388
  fi
373
389
  ;;
374
390
 
391
+ "rhc app-scale-down")
392
+ if [[ "$cur" == -* ]]; then
393
+ opts="--app --application-id --namespace"
394
+ else
395
+ opts=""
396
+ fi
397
+ ;;
398
+
399
+ "rhc app-scale-up")
400
+ if [[ "$cur" == -* ]]; then
401
+ opts="--app --application-id --namespace"
402
+ else
403
+ opts=""
404
+ fi
405
+ ;;
406
+
375
407
  "rhc app-show")
376
408
  if [[ "$cur" == -* ]]; then
377
409
  opts="--app --application-id --configuration --gears --namespace --state"
@@ -518,7 +550,7 @@ _rhc()
518
550
 
519
551
  "rhc cartridge add")
520
552
  if [[ "$cur" == -* ]]; then
521
- opts="--app --application-id --cartridge --env --namespace"
553
+ opts="--app --application-id --cartridge --env --gear-size --namespace"
522
554
  else
523
555
  opts=""
524
556
  fi
@@ -606,7 +638,7 @@ _rhc()
606
638
 
607
639
  "rhc cartridge-add")
608
640
  if [[ "$cur" == -* ]]; then
609
- opts="--app --application-id --cartridge --env --namespace"
641
+ opts="--app --application-id --cartridge --env --gear-size --namespace"
610
642
  else
611
643
  opts=""
612
644
  fi
@@ -718,7 +750,7 @@ _rhc()
718
750
 
719
751
  "rhc create-app")
720
752
  if [[ "$cur" == -* ]]; then
721
- opts="--app --auto-deploy --deployment-branch --dns --enable-jenkins --env --from-code --gear-size --git --keep-deployments --namespace --no-auto-deploy --no-dns --no-git --no-keys --repo --scaling --type"
753
+ opts="--app --dns --enable-jenkins --env --from-code --gear-size --git --namespace --no-dns --no-git --no-keys --repo --scaling --type"
722
754
  else
723
755
  opts=""
724
756
  fi
@@ -766,7 +798,7 @@ _rhc()
766
798
 
767
799
  "rhc delete-domain")
768
800
  if [[ "$cur" == -* ]]; then
769
- opts="--namespace"
801
+ opts="--force --namespace"
770
802
  else
771
803
  opts=""
772
804
  fi
@@ -878,7 +910,7 @@ _rhc()
878
910
 
879
911
  "rhc domain delete")
880
912
  if [[ "$cur" == -* ]]; then
881
- opts="--namespace"
913
+ opts="--force --namespace"
882
914
  else
883
915
  opts=""
884
916
  fi
@@ -934,7 +966,7 @@ _rhc()
934
966
 
935
967
  "rhc domain-delete")
936
968
  if [[ "$cur" == -* ]]; then
937
- opts="--namespace"
969
+ opts="--force --namespace"
938
970
  else
939
971
  opts=""
940
972
  fi
@@ -1348,6 +1380,22 @@ _rhc()
1348
1380
  fi
1349
1381
  ;;
1350
1382
 
1383
+ "rhc scale-down-app")
1384
+ if [[ "$cur" == -* ]]; then
1385
+ opts="--app --application-id --namespace"
1386
+ else
1387
+ opts=""
1388
+ fi
1389
+ ;;
1390
+
1391
+ "rhc scale-up-app")
1392
+ if [[ "$cur" == -* ]]; then
1393
+ opts="--app --application-id --namespace"
1394
+ else
1395
+ opts=""
1396
+ fi
1397
+ ;;
1398
+
1351
1399
  "rhc server")
1352
1400
  if [[ "$cur" == -* ]]; then
1353
1401
  opts=""
@@ -1478,7 +1526,7 @@ _rhc()
1478
1526
 
1479
1527
  "rhc sshkey add")
1480
1528
  if [[ "$cur" == -* ]]; then
1481
- opts="--confirm"
1529
+ opts="--confirm --content --type"
1482
1530
  else
1483
1531
  opts=""
1484
1532
  fi
@@ -1510,7 +1558,7 @@ _rhc()
1510
1558
 
1511
1559
  "rhc sshkey-add")
1512
1560
  if [[ "$cur" == -* ]]; then
1513
- opts="--confirm"
1561
+ opts="--confirm --content --type"
1514
1562
  else
1515
1563
  opts=""
1516
1564
  fi
@@ -5,4 +5,4 @@ libra_server = 'openshift.redhat.com'
5
5
  debug = 'false'
6
6
 
7
7
  # Timeout
8
- #timeout = '10'
8
+ #timeout = '10'
@@ -37,9 +37,13 @@ describe "rhc core scenarios" do
37
37
  r.stdout.should match 'SSL Certificates'
38
38
  end
39
39
 
40
- it "starts the wizard on default invocation" do
40
+ it "displays help on default invocation" do
41
41
  r = rhc
42
- r.stdout.should match "OpenShift Client Tools"
42
+ r.status.should == 0
43
+ r.stdout.should match "Command line interface for OpenShift"
44
+ r.stdout.should match "Usage: rhc"
45
+ r.stdout.should match "Getting started"
46
+ r.stdout.should match "See 'rhc help options' for a list"
43
47
  end
44
48
  end
45
49
 
@@ -114,6 +118,7 @@ describe "rhc core scenarios" do
114
118
  Dir.chdir @app.name
115
119
  end
116
120
  let(:git_config){ `git config --list` }
121
+ let(:git_remotes){ `git remote -v` }
117
122
 
118
123
  it "will set Git config values" do
119
124
  git_config.should match "rhc.app-id=#{app.id}"
@@ -121,6 +126,11 @@ describe "rhc core scenarios" do
121
126
  git_config.should match "rhc.domain-name=#{app.domain_name}"
122
127
  end
123
128
 
129
+ it "will set remote branches correctly" do
130
+ git_remotes.should match "origin"
131
+ git_remotes.should_not match "upstream"
132
+ end
133
+
124
134
  it "will infer the current app from the git repository" do
125
135
  r = rhc 'show-app'
126
136
  r.stdout.should match app.name
@@ -98,6 +98,8 @@ describe "rhc deployment scenarios" do
98
98
  FileUtils.rm_rf git_directory
99
99
  git_clone
100
100
  Dir.chdir git_directory
101
+ `git config user.email "you@example.com"`
102
+ `git config user.name "Your Name"`
101
103
  `sed -i "s/Welcome to OpenShift/#{content}/" php/index.php`
102
104
  `git commit -a -m "Commit from Feature Tests"`
103
105
  `git push origin master`
@@ -7,7 +7,7 @@ module RHC
7
7
  from = opts[:from] || all_cartridges
8
8
 
9
9
  cartridge_names.map do |name|
10
- next use_cart(RHC::Rest::Cartridge.for_url(name), name) if name =~ %r(\Ahttps?://)i
10
+ next from.find{ |c| c.url.present? && c.url.downcase == name} || use_cart(RHC::Rest::Cartridge.for_url(name), name) if name =~ %r(\Ahttps?://)i
11
11
 
12
12
  name = name.downcase
13
13
  from.find{ |c| c.name.downcase == name } ||
@@ -14,7 +14,7 @@ module RHC
14
14
  extend Commander::Delegates
15
15
 
16
16
  def self.set_terminal
17
- $terminal.wrap_at = HighLine::SystemExtensions.terminal_size.first rescue 80 if $stdin.tty?
17
+ $terminal.wrap_at = HighLine::SystemExtensions.terminal_size.first rescue 80 if $stdout.tty?
18
18
  $terminal.wrap_at = nil if $terminal.wrap_at == 0
19
19
  #$terminal.page_at = :auto if $stdin.tty? and $stdout.tty?
20
20
  # FIXME: ANSI terminals are not default on windows but we may just be
@@ -72,7 +72,6 @@ module RHC
72
72
  begin
73
73
  run_active_command
74
74
  rescue InvalidCommandError => e
75
- return RHC::Wizard.new.run unless RHC::Wizard.has_configuration? || provided_arguments.present?
76
75
  run_help(provided_arguments)
77
76
  rescue \
78
77
  OptionParser::InvalidOption => e
@@ -244,6 +244,26 @@ module RHC::Commands
244
244
  0
245
245
  end
246
246
 
247
+ summary "Scale up the application's web cartridge"
248
+ syntax "<app> [--namespace NAME]"
249
+ takes_application :argument => true
250
+ def scale_up(app)
251
+ app_action :scale_up
252
+
253
+ results { say "#{app} scaled up" }
254
+ 0
255
+ end
256
+
257
+ summary "Scale down the application's web cartridge"
258
+ syntax "<app> [--namespace NAME]"
259
+ takes_application :argument => true
260
+ def scale_down(app)
261
+ app_action :scale_down
262
+
263
+ results { say "#{app} scaled down" }
264
+ 0
265
+ end
266
+
247
267
  summary "Stops all application processes"
248
268
  syntax "<app> [--namespace NAME]"
249
269
  takes_application :argument => true
@@ -1,9 +1,28 @@
1
1
  module RHC::Commands
2
2
  class Authorization < Base
3
3
 
4
+ summary "Manage your authorization tokens"
5
+ syntax "<action>"
6
+ description <<-DESC
7
+ An authorization token grants access to the OpenShift REST API with a
8
+ set of privileges called 'scopes' for a limited time. You can add an
9
+ optional note to each authorization token to assist you in remembering
10
+ why it was created.
11
+
12
+ To see all your authorizations, run 'rhc authorizations'.
13
+
14
+ To view the list of scopes supported by this server, run the
15
+ 'rhc add-authorization' command with no arguments.
16
+
17
+ These commands manage your authorization tokens on the server - if you
18
+ want to clear your authorization tokens from the current machine use
19
+ 'rhc logout'
20
+ DESC
21
+ default_action :help
22
+
4
23
  summary "Show the authorization tokens for your account"
5
24
  description <<-DESC
6
- Shows the full list of authorization tokens on your account. You
25
+ Shows the full list of authorization tokens on your account. You
7
26
  can add, edit, or delete authorizations with subcommands.
8
27
 
9
28
  An authorization token grants access to the OpenShift REST API with
@@ -12,7 +31,6 @@ module RHC::Commands
12
31
  remembering what is available.
13
32
  DESC
14
33
  alias_action 'authorizations', :root_command => true
15
- default_action :list
16
34
  def list
17
35
  rest_client.authorizations.each{ |auth| paragraph{ display_authorization(auth, token_for_user) } } or info "No authorizations"
18
36
 
@@ -98,7 +98,7 @@ module RHC::Commands
98
98
  warn "In order to deploy applications, you must create a domain with 'rhc setup' or 'rhc create-domain'." and return 1 unless domain
99
99
 
100
100
  applications = domain.applications(:include => :cartridges)
101
- display_domain(domain, applications)
101
+ display_domain(domain, applications, true)
102
102
 
103
103
  if applications.present?
104
104
  success "You have #{pluralize(applications.length, 'application')} in your domain."
@@ -111,15 +111,16 @@ module RHC::Commands
111
111
 
112
112
  summary "Display all domains you have access to"
113
113
  option ['--mine'], "Display only domains you own"
114
- option ['--ids'], "Display the unique id of the domain (not supported by all servers)"
114
+ option ['--ids'], "Display the unique id of the domain (deprecated, domain IDs are now displayed by default)"
115
115
  alias_action :domains, :root_command => true
116
116
  def list
117
117
  domains = rest_client.send(options.mine ? :owned_domains : :domains)
118
118
 
119
119
  warn "In order to deploy applications, you must create a domain with 'rhc setup' or 'rhc create-domain'." and return 1 unless domains.present?
120
+ warn "The --ids option is deprecated. Domain IDs are displayed by default." if options.ids
120
121
 
121
122
  domains.each do |d|
122
- display_domain(d, nil, options.ids)
123
+ display_domain(d, nil, true)
123
124
  end
124
125
 
125
126
  success "You have access to #{pluralize(domains.length, 'domain')}."
@@ -95,7 +95,7 @@ module RHC
95
95
  say "Activating deployment '#{deployment_id}' on application #{rest_app.name} ..."
96
96
 
97
97
  ssh_url = URI(rest_app.ssh_url)
98
- remote_cmd = "gear activate #{deployment_id}"
98
+ remote_cmd = "gear activate --all #{deployment_id}"
99
99
 
100
100
  begin
101
101
  ssh_ruby(ssh_url.host, ssh_url.user, remote_cmd)
@@ -41,6 +41,8 @@ module RHC
41
41
  git_config_set "rhc.app-id", app.id
42
42
  git_config_set "rhc.app-name", app.name
43
43
  git_config_set "rhc.domain-name", app.domain_id
44
+
45
+ git_remote_add("upstream", app.initial_git_url) if app.initial_git_url.present?
44
46
  end
45
47
 
46
48
  git_clone_deploy_hooks(repo_dir)
@@ -48,6 +50,13 @@ module RHC
48
50
  dir
49
51
  end
50
52
 
53
+ def git_remote_add(remote_name, remote_url)
54
+ cmd = "#{git_cmd} remote add upstream \"#{remote_url}\""
55
+ debug "Running #{cmd} 2>&1"
56
+ output = %x[#{cmd} 2>&1]
57
+ raise RHC::GitException, "Error while adding upstream remote - #{output}" unless output.empty?
58
+ end
59
+
51
60
  # :nocov: These all call external binaries so test them in cucumber
52
61
  def git_config_get(key)
53
62
  return nil unless has_git?
@@ -95,7 +95,7 @@ module RHC
95
95
  #
96
96
 
97
97
  def user_agent
98
- "rhc/#{RHC::VERSION::STRING} (ruby #{RUBY_VERSION}; #{RUBY_PLATFORM})#{" (API #{RHC::Rest::API_VERSION})" rescue ''}"
98
+ "rhc/#{RHC::VERSION::STRING} (ruby #{RUBY_VERSION}; #{RUBY_PLATFORM})#{" (API #{RHC::Rest::Client::CLIENT_API_VERSIONS})"}"
99
99
  end
100
100
 
101
101
  #
@@ -21,6 +21,14 @@ module RHC
21
21
  attributes['id'] || uuid
22
22
  end
23
23
 
24
+ def uuid
25
+ if (client.api_version_negotiated >= 1.6)
26
+ attributes['id']
27
+ else
28
+ attributes['uuid']
29
+ end
30
+ end
31
+
24
32
  def domain
25
33
  domain_id
26
34
  end
@@ -97,6 +105,14 @@ module RHC
97
105
  rest_method 'TIDY', :event => "tidy"
98
106
  end
99
107
 
108
+ def scale_up
109
+ rest_method 'SCALE_UP', :event => "scale-up"
110
+ end
111
+
112
+ def scale_down
113
+ rest_method 'SCALE_DOWN', :event => "scale-down"
114
+ end
115
+
100
116
  def start
101
117
  debug "Starting application #{name}"
102
118
  rest_method 'START', :event => "start"
@@ -214,7 +214,7 @@ module RHC
214
214
  # The list may not necessarily be sorted; we will select the last
215
215
  # matching one supported by the server.
216
216
  # See #api_version_negotiated
217
- CLIENT_API_VERSIONS = [1.1, 1.2, 1.3, 1.4, 1.5]
217
+ CLIENT_API_VERSIONS = [1.1, 1.2, 1.3, 1.4, 1.5, 1.6]
218
218
  MAX_RETRIES = 5
219
219
 
220
220
  def initialize(*args)
@@ -395,6 +395,8 @@ module RHC::Rest::Mock
395
395
  ['START', "domains/#{domain_id}/apps/#{app_id}/start", 'post'],
396
396
  ['STOP', "domains/#{domain_id}/apps/#{app_id}/stop", 'post'],
397
397
  ['RESTART', "domains/#{domain_id}/apps/#{app_id}/restart", 'post'],
398
+ ['SCALE_UP', "broker/rest/application/#{app_id}/events", 'scale-up'],
399
+ ['SCALE_DOWN', "broker/rest/application/#{app_id}/events", 'scale-down'],
398
400
  ['THREAD_DUMP', "domains/#{domain_id}/apps/#{app_id}/event", 'post'],
399
401
  ['ADD_ALIAS', "domains/#{domain_id}/apps/#{app_id}/event", 'post'],
400
402
  ['REMOVE_ALIAS', "domains/#{domain_id}/apps/#{app_id}/event", 'post'],
@@ -854,6 +856,14 @@ module RHC::Rest::Mock
854
856
  @app
855
857
  end
856
858
 
859
+ def scale_up
860
+ @app
861
+ end
862
+
863
+ def scale_down
864
+ @app
865
+ end
866
+
857
867
  def add_alias(app_alias)
858
868
  @aliases << MockRestAlias.new(@client, app_alias)
859
869
  end
@@ -370,7 +370,7 @@ module RHC
370
370
  def ssh_add
371
371
  if exe?('ssh-add')
372
372
  #:nocov:
373
- `ssh-add 2&>1`
373
+ `ssh-add 2>&1`
374
374
  #:nocov:
375
375
  end
376
376
  end
@@ -13,7 +13,7 @@ module RHC
13
13
  return false if ! (File.file? filename and File.basename(filename).downcase =~ /.\.t(ar\.)?gz$/i)
14
14
 
15
15
  regex = Regexp.new search
16
- if RHC::Helpers.windows? or force_ruby
16
+ if RHC::Helpers.windows? or RHC::Helpers.mac? or force_ruby
17
17
  begin
18
18
  zlib::GzipReader.open(filename) do |gz|
19
19
  Minitar::Reader.open gz do |tar|
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'rest_spec_helper'
2
3
  require 'rhc/wizard'
3
4
 
4
5
  describe RHC::CLI do
@@ -81,8 +82,7 @@ describe RHC::CLI do
81
82
  it_should_behave_like 'a global help page'
82
83
 
83
84
  context "without a config file" do
84
- before{ RHC::Wizard.stub(:has_configuration?).and_return(false) }
85
- it_should_behave_like 'a first run wizard'
85
+ it_should_behave_like 'a global help page'
86
86
  end
87
87
  end
88
88
 
@@ -174,13 +174,12 @@ describe RHC::CLI do
174
174
  describe '#set_terminal' do
175
175
  before(:each) { mock_terminal }
176
176
  it('should update $terminal.wrap_at') do
177
- $stdin.should_receive(:tty?).once.and_return(true)
177
+ $stdout.should_receive(:tty?).twice.and_return(true)
178
178
  HighLine::SystemExtensions.should_receive(:terminal_size).and_return([5])
179
179
  expect { RHC::CLI.set_terminal }.to change($terminal, :wrap_at)
180
180
  end
181
181
  it('should not update $terminal.page_at') do
182
- $stdin.should_receive(:tty?).once.and_return(true)
183
- $stdout.should_receive(:tty?).once.and_return(true)
182
+ $stdout.should_receive(:tty?).twice.and_return(true)
184
183
  expect { RHC::CLI.set_terminal }.to_not change($terminal, :page_at)
185
184
  end
186
185
  end
@@ -669,6 +669,18 @@ describe RHC::Commands::App do
669
669
  it { expect{ run }.to exit_with_code(0) }
670
670
  end
671
671
 
672
+ context 'app scale-up' do
673
+ let(:arguments) { ['app', 'scale-up', '-a', 'app1'] }
674
+ it { run_output.should match('scaled up') }
675
+ it { expect{ run }.to exit_with_code(0) }
676
+ end
677
+
678
+ context 'app scale-down' do
679
+ let(:arguments) { ['app', 'scale-down', '-a', 'app1'] }
680
+ it { run_output.should match('scaled down') }
681
+ it { expect{ run }.to exit_with_code(0) }
682
+ end
683
+
672
684
  context 'app stop' do
673
685
  let(:arguments) { ['app', 'stop', 'app1'] }
674
686
 
@@ -28,7 +28,7 @@ describe RHC::Commands::Authorization do
28
28
  end
29
29
 
30
30
  describe '#run' do
31
- let(:arguments) { ['authorization'] }
31
+ let(:arguments) { ['authorizations'] }
32
32
  context "with authorizations" do
33
33
  with_authorization
34
34
  before{ challenge{ stub_authorizations } }
@@ -42,12 +42,13 @@ describe RHC::Commands::Authorization do
42
42
 
43
43
  expect_an_unsupported_message
44
44
  end
45
-
45
+
46
46
  describe '#run' do
47
- let(:arguments) { ['authorization', '--h']}
48
- context 'given --h' do
49
- it 'should not raise' do
50
- expect{ run }.to_not raise_error
47
+ let(:arguments) { ['authorization']}
48
+ context 'given no arguments' do
49
+ it('should display help'){ run_output.should =~ /An authorization token grants access to the OpenShift REST API.*To see all your authorizations/m }
50
+ it 'should ask for an argument' do
51
+ expect{ run }.to exit_with_code(1)
51
52
  end
52
53
  end
53
54
  end
@@ -256,6 +256,21 @@ describe RHC::Commands::Cartridge do
256
256
  end
257
257
  end
258
258
 
259
+ context 'when run with custom cart url' do
260
+ let(:arguments) { ['cartridge', 'remove', 'https://foo.bar.com', '--confirm', '-a', 'app1'] }
261
+ before do
262
+ @domain = rest_client.add_domain("mockdomain")
263
+ @app = @domain.add_application("app1", "mock_type")
264
+ cart1 = @app.add_cartridge('mock_cart-1')
265
+ cart1.url = 'https://foo.bar.com'
266
+ end
267
+ it "should remove cartridge" do
268
+ expect { run }.to exit_with_code(0)
269
+ # framework cart should be the only one listed
270
+ @app.cartridges.length.should == 1
271
+ end
272
+ end
273
+
259
274
  context "against a 1.5 server" do
260
275
  let!(:rest_client){ nil }
261
276
  let(:username){ mock_user }
@@ -53,6 +53,19 @@ describe RHC::Commands::GitClone do
53
53
 
54
54
  it { expect { run }.to exit_with_code(0) }
55
55
  it { run_output.should match("Cloned") }
56
+
57
+ context 'when app has an initial git url' do
58
+ before do
59
+ @app2 = @domain.add_application("app2", "mock_unique_standalone_cart", nil, "default", "git://test")
60
+ @instance.stub(:git_remote_add) do |remote_name, remote_url|
61
+ say "Added remote #{remote_name} pointing to #{remote_url}"
62
+ true
63
+ end
64
+ end
65
+ let(:arguments) { ['git-clone', 'app2'] }
66
+ it { run_output.should match("Added remote upstream pointing to git://test") }
67
+ end
68
+
56
69
  end
57
70
 
58
71
  context "testing git_clone_deploy_hooks" do
@@ -242,6 +242,16 @@ module RHC
242
242
  let(:control_data) { { :method => :destroy, :event => 'delete', :link => 'delete', :payload => false } }
243
243
  it_should_behave_like "a control method"
244
244
  end
245
+
246
+ context "#scale_up" do
247
+ let(:control_data) { { :method => :scale_up, :event => 'scale-up', :link => 'scale_up', :payload => false } }
248
+ it_should_behave_like "a control method"
249
+ end
250
+
251
+ context "#scale_down" do
252
+ let(:control_data) { { :method => :scale_down, :event => 'scale-down', :link => 'scale_down', :payload => false } }
253
+ it_should_behave_like "a control method"
254
+ end
245
255
  end
246
256
  end
247
257
  end
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: 91
4
+ hash: 81
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 18
9
- - 2
10
- version: 1.18.2
8
+ - 19
9
+ - 5
10
+ version: 1.19.5
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-11 00:00:00 Z
18
+ date: 2014-01-28 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: net-ssh
@@ -237,82 +237,82 @@ extensions: []
237
237
  extra_rdoc_files: []
238
238
 
239
239
  files:
240
- - lib/rhc/command_runner.rb
240
+ - lib/rhc.rb
241
+ - lib/rhc/auth.rb
241
242
  - lib/rhc/version.rb
242
- - lib/rhc/cartridge_helpers.rb
243
- - lib/rhc/auth/basic.rb
244
- - lib/rhc/auth/token_store.rb
245
- - lib/rhc/auth/token.rb
246
- - lib/rhc/output_helpers.rb
243
+ - lib/rhc/core_ext.rb
244
+ - lib/rhc/json.rb
247
245
  - lib/rhc/wizard.rb
248
- - lib/rhc/help_formatter.rb
249
- - lib/rhc/commands.rb
250
- - lib/rhc/context_helper.rb
251
246
  - lib/rhc/rest.rb
252
- - lib/rhc/ssh_helpers.rb
253
- - lib/rhc/helpers.rb
254
- - lib/rhc/coverage_helper.rb
255
- - lib/rhc/json.rb
256
- - lib/rhc/deployment_helpers.rb
257
- - lib/rhc/git_helpers.rb
258
- - lib/rhc/auth.rb
259
- - lib/rhc/exceptions.rb
260
247
  - lib/rhc/autocomplete.rb
248
+ - lib/rhc/git_helpers.rb
249
+ - lib/rhc/command_runner.rb
250
+ - lib/rhc/context_helper.rb
261
251
  - lib/rhc/config.rb
262
- - lib/rhc/commands/setup.rb
263
- - lib/rhc/commands/account.rb
252
+ - lib/rhc/exceptions.rb
253
+ - lib/rhc/commands/threaddump.rb
254
+ - lib/rhc/commands/cartridge.rb
255
+ - lib/rhc/commands/base.rb
264
256
  - lib/rhc/commands/port_forward.rb
257
+ - lib/rhc/commands/logout.rb
258
+ - lib/rhc/commands/setup.rb
259
+ - lib/rhc/commands/deployment.rb
265
260
  - lib/rhc/commands/tail.rb
266
- - lib/rhc/commands/alias.rb
267
- - lib/rhc/commands/git_clone.rb
261
+ - lib/rhc/commands/server.rb
268
262
  - lib/rhc/commands/ssh.rb
269
- - lib/rhc/commands/domain.rb
270
- - lib/rhc/commands/cartridge.rb
263
+ - lib/rhc/commands/apps.rb
264
+ - lib/rhc/commands/alias.rb
271
265
  - lib/rhc/commands/authorization.rb
272
- - lib/rhc/commands/member.rb
273
266
  - lib/rhc/commands/sshkey.rb
274
- - lib/rhc/commands/deployment.rb
275
- - lib/rhc/commands/snapshot.rb
276
- - lib/rhc/commands/server.rb
277
267
  - lib/rhc/commands/app.rb
278
- - lib/rhc/commands/logout.rb
268
+ - lib/rhc/commands/member.rb
269
+ - lib/rhc/commands/domain.rb
279
270
  - lib/rhc/commands/env.rb
280
- - lib/rhc/commands/apps.rb
281
- - lib/rhc/commands/threaddump.rb
282
- - lib/rhc/commands/base.rb
283
- - lib/rhc/tar_gz.rb
271
+ - lib/rhc/commands/account.rb
272
+ - lib/rhc/commands/git_clone.rb
273
+ - lib/rhc/commands/snapshot.rb
284
274
  - lib/rhc/highline_extensions.rb
285
- - lib/rhc/cli.rb
286
- - lib/rhc/core_ext.rb
287
- - lib/rhc/vendor/parseconfig.rb
288
- - lib/rhc/vendor/zliby.rb
289
- - lib/rhc/vendor/okjson.rb
290
- - lib/rhc/vendor/sshkey.rb
291
- - lib/rhc/rest/user.rb
292
- - lib/rhc/rest/attributes.rb
293
- - lib/rhc/rest/environment_variable.rb
294
- - lib/rhc/rest/activation.rb
295
- - lib/rhc/rest/api.rb
296
- - lib/rhc/rest/alias.rb
297
- - lib/rhc/rest/domain.rb
275
+ - lib/rhc/tar_gz.rb
276
+ - lib/rhc/commands.rb
277
+ - lib/rhc/ssh_helpers.rb
278
+ - lib/rhc/output_helpers.rb
279
+ - lib/rhc/coverage_helper.rb
280
+ - lib/rhc/help_formatter.rb
298
281
  - lib/rhc/rest/key.rb
299
282
  - lib/rhc/rest/cartridge.rb
300
- - lib/rhc/rest/membership.rb
301
- - lib/rhc/rest/authorization.rb
283
+ - lib/rhc/rest/base.rb
284
+ - lib/rhc/rest/activation.rb
302
285
  - lib/rhc/rest/deployment.rb
303
286
  - lib/rhc/rest/gear_group.rb
304
- - lib/rhc/rest/mock.rb
305
- - lib/rhc/rest/client.rb
287
+ - lib/rhc/rest/environment_variable.rb
288
+ - lib/rhc/rest/membership.rb
289
+ - lib/rhc/rest/user.rb
306
290
  - lib/rhc/rest/application.rb
307
- - lib/rhc/rest/base.rb
291
+ - lib/rhc/rest/api.rb
292
+ - lib/rhc/rest/client.rb
293
+ - lib/rhc/rest/alias.rb
294
+ - lib/rhc/rest/authorization.rb
295
+ - lib/rhc/rest/mock.rb
308
296
  - lib/rhc/rest/httpclient.rb
309
- - lib/rhc.rb
297
+ - lib/rhc/rest/attributes.rb
298
+ - lib/rhc/rest/domain.rb
299
+ - lib/rhc/vendor/okjson.rb
300
+ - lib/rhc/vendor/parseconfig.rb
301
+ - lib/rhc/vendor/zliby.rb
302
+ - lib/rhc/vendor/sshkey.rb
303
+ - lib/rhc/auth/token.rb
304
+ - lib/rhc/auth/basic.rb
305
+ - lib/rhc/auth/token_store.rb
306
+ - lib/rhc/helpers.rb
307
+ - lib/rhc/cli.rb
308
+ - lib/rhc/deployment_helpers.rb
309
+ - lib/rhc/cartridge_helpers.rb
310
310
  - lib/rhc/autocomplete_templates/bash.erb
311
+ - lib/rhc/usage_templates/help.erb
311
312
  - lib/rhc/usage_templates/command_syntax_help.erb
313
+ - lib/rhc/usage_templates/options_help.erb
312
314
  - lib/rhc/usage_templates/missing_help.erb
313
315
  - lib/rhc/usage_templates/command_help.erb
314
- - lib/rhc/usage_templates/options_help.erb
315
- - lib/rhc/usage_templates/help.erb
316
316
  - conf/express.conf
317
317
  - autocomplete/rhc_bash
318
318
  - LICENSE
@@ -320,59 +320,59 @@ files:
320
320
  - README.md
321
321
  - Rakefile
322
322
  - spec/rest_spec_helper.rb
323
+ - spec/keys/server.pem
324
+ - spec/keys/example_private.pem
325
+ - spec/keys/example.pem
326
+ - spec/spec_helper.rb
327
+ - spec/direct_execution_helper.rb
328
+ - spec/coverage_helper.rb
323
329
  - spec/wizard_spec_helper.rb
324
- - spec/rhc/targz_spec.rb
325
- - spec/rhc/config_spec.rb
326
- - spec/rhc/helpers_spec.rb
327
- - spec/rhc/rest_spec.rb
328
- - spec/rhc/auth_spec.rb
329
- - spec/rhc/rest_client_spec.rb
330
- - spec/rhc/assets/empty.txt
331
- - spec/rhc/assets/env_vars_2.txt
332
- - spec/rhc/assets/cert_key_rsa
333
- - spec/rhc/assets/targz_sample.tar.gz
334
- - spec/rhc/assets/env_vars.txt
335
- - spec/rhc/assets/targz_corrupted.tar.gz
336
- - spec/rhc/assets/cert.crt
337
- - spec/rhc/assets/foo.txt
338
330
  - spec/rhc/highline_extensions_spec.rb
339
- - spec/rhc/command_spec.rb
340
331
  - spec/rhc/cli_spec.rb
341
- - spec/rhc/commands/setup_spec.rb
342
- - spec/rhc/commands/tail_spec.rb
343
- - spec/rhc/commands/port_forward_spec.rb
344
- - spec/rhc/commands/app_spec.rb
345
- - spec/rhc/commands/deployment_spec.rb
346
- - spec/rhc/commands/domain_spec.rb
332
+ - spec/rhc/rest_spec.rb
333
+ - spec/rhc/targz_spec.rb
334
+ - spec/rhc/wizard_spec.rb
335
+ - spec/rhc/rest_client_spec.rb
347
336
  - spec/rhc/commands/sshkey_spec.rb
348
- - spec/rhc/commands/threaddump_spec.rb
349
- - spec/rhc/commands/server_spec.rb
350
- - spec/rhc/commands/ssh_spec.rb
351
- - spec/rhc/commands/logout_spec.rb
352
- - spec/rhc/commands/member_spec.rb
353
- - spec/rhc/commands/alias_spec.rb
354
- - spec/rhc/commands/authorization_spec.rb
337
+ - spec/rhc/commands/apps_spec.rb
355
338
  - spec/rhc/commands/account_spec.rb
339
+ - spec/rhc/commands/domain_spec.rb
356
340
  - spec/rhc/commands/cartridge_spec.rb
357
- - spec/rhc/commands/env_spec.rb
341
+ - spec/rhc/commands/app_spec.rb
358
342
  - spec/rhc/commands/snapshot_spec.rb
343
+ - spec/rhc/commands/ssh_spec.rb
344
+ - spec/rhc/commands/tail_spec.rb
345
+ - spec/rhc/commands/setup_spec.rb
346
+ - spec/rhc/commands/alias_spec.rb
347
+ - spec/rhc/commands/env_spec.rb
348
+ - spec/rhc/commands/port_forward_spec.rb
359
349
  - spec/rhc/commands/git_clone_spec.rb
360
- - spec/rhc/commands/apps_spec.rb
350
+ - spec/rhc/commands/authorization_spec.rb
351
+ - spec/rhc/commands/member_spec.rb
352
+ - spec/rhc/commands/threaddump_spec.rb
353
+ - spec/rhc/commands/server_spec.rb
354
+ - spec/rhc/commands/deployment_spec.rb
355
+ - spec/rhc/commands/logout_spec.rb
356
+ - spec/rhc/assets/targz_sample.tar.gz
357
+ - spec/rhc/assets/env_vars_2.txt
358
+ - spec/rhc/assets/cert_key_rsa
359
+ - spec/rhc/assets/targz_corrupted.tar.gz
360
+ - spec/rhc/assets/cert.crt
361
+ - spec/rhc/assets/env_vars.txt
362
+ - spec/rhc/assets/empty.txt
363
+ - spec/rhc/assets/foo.txt
361
364
  - spec/rhc/json_spec.rb
362
- - spec/rhc/wizard_spec.rb
365
+ - spec/rhc/auth_spec.rb
366
+ - spec/rhc/config_spec.rb
367
+ - spec/rhc/helpers_spec.rb
363
368
  - spec/rhc/rest_application_spec.rb
364
- - spec/spec_helper.rb
365
- - spec/coverage_helper.rb
366
- - spec/direct_execution_helper.rb
367
- - spec/keys/server.pem
368
- - spec/keys/example.pem
369
- - spec/keys/example_private.pem
370
- - features/core_feature.rb
369
+ - spec/rhc/command_spec.rb
370
+ - features/members_feature.rb
371
371
  - features/assets/deploy.tar.gz
372
+ - features/deployments_feature.rb
373
+ - features/core_feature.rb
372
374
  - features/keys_feature.rb
373
375
  - features/domains_feature.rb
374
- - features/members_feature.rb
375
- - features/deployments_feature.rb
376
376
  - bin/rhc
377
377
  homepage: https://github.com/openshift/rhc
378
378
  licenses: []
@@ -414,56 +414,56 @@ specification_version: 3
414
414
  summary: OpenShift Client Tools
415
415
  test_files:
416
416
  - spec/rest_spec_helper.rb
417
+ - spec/keys/server.pem
418
+ - spec/keys/example_private.pem
419
+ - spec/keys/example.pem
420
+ - spec/spec_helper.rb
421
+ - spec/direct_execution_helper.rb
422
+ - spec/coverage_helper.rb
417
423
  - spec/wizard_spec_helper.rb
418
- - spec/rhc/targz_spec.rb
419
- - spec/rhc/config_spec.rb
420
- - spec/rhc/helpers_spec.rb
421
- - spec/rhc/rest_spec.rb
422
- - spec/rhc/auth_spec.rb
423
- - spec/rhc/rest_client_spec.rb
424
- - spec/rhc/assets/empty.txt
425
- - spec/rhc/assets/env_vars_2.txt
426
- - spec/rhc/assets/cert_key_rsa
427
- - spec/rhc/assets/targz_sample.tar.gz
428
- - spec/rhc/assets/env_vars.txt
429
- - spec/rhc/assets/targz_corrupted.tar.gz
430
- - spec/rhc/assets/cert.crt
431
- - spec/rhc/assets/foo.txt
432
424
  - spec/rhc/highline_extensions_spec.rb
433
- - spec/rhc/command_spec.rb
434
425
  - spec/rhc/cli_spec.rb
435
- - spec/rhc/commands/setup_spec.rb
436
- - spec/rhc/commands/tail_spec.rb
437
- - spec/rhc/commands/port_forward_spec.rb
438
- - spec/rhc/commands/app_spec.rb
439
- - spec/rhc/commands/deployment_spec.rb
440
- - spec/rhc/commands/domain_spec.rb
426
+ - spec/rhc/rest_spec.rb
427
+ - spec/rhc/targz_spec.rb
428
+ - spec/rhc/wizard_spec.rb
429
+ - spec/rhc/rest_client_spec.rb
441
430
  - spec/rhc/commands/sshkey_spec.rb
442
- - spec/rhc/commands/threaddump_spec.rb
443
- - spec/rhc/commands/server_spec.rb
444
- - spec/rhc/commands/ssh_spec.rb
445
- - spec/rhc/commands/logout_spec.rb
446
- - spec/rhc/commands/member_spec.rb
447
- - spec/rhc/commands/alias_spec.rb
448
- - spec/rhc/commands/authorization_spec.rb
431
+ - spec/rhc/commands/apps_spec.rb
449
432
  - spec/rhc/commands/account_spec.rb
433
+ - spec/rhc/commands/domain_spec.rb
450
434
  - spec/rhc/commands/cartridge_spec.rb
451
- - spec/rhc/commands/env_spec.rb
435
+ - spec/rhc/commands/app_spec.rb
452
436
  - spec/rhc/commands/snapshot_spec.rb
437
+ - spec/rhc/commands/ssh_spec.rb
438
+ - spec/rhc/commands/tail_spec.rb
439
+ - spec/rhc/commands/setup_spec.rb
440
+ - spec/rhc/commands/alias_spec.rb
441
+ - spec/rhc/commands/env_spec.rb
442
+ - spec/rhc/commands/port_forward_spec.rb
453
443
  - spec/rhc/commands/git_clone_spec.rb
454
- - spec/rhc/commands/apps_spec.rb
444
+ - spec/rhc/commands/authorization_spec.rb
445
+ - spec/rhc/commands/member_spec.rb
446
+ - spec/rhc/commands/threaddump_spec.rb
447
+ - spec/rhc/commands/server_spec.rb
448
+ - spec/rhc/commands/deployment_spec.rb
449
+ - spec/rhc/commands/logout_spec.rb
450
+ - spec/rhc/assets/targz_sample.tar.gz
451
+ - spec/rhc/assets/env_vars_2.txt
452
+ - spec/rhc/assets/cert_key_rsa
453
+ - spec/rhc/assets/targz_corrupted.tar.gz
454
+ - spec/rhc/assets/cert.crt
455
+ - spec/rhc/assets/env_vars.txt
456
+ - spec/rhc/assets/empty.txt
457
+ - spec/rhc/assets/foo.txt
455
458
  - spec/rhc/json_spec.rb
456
- - spec/rhc/wizard_spec.rb
459
+ - spec/rhc/auth_spec.rb
460
+ - spec/rhc/config_spec.rb
461
+ - spec/rhc/helpers_spec.rb
457
462
  - spec/rhc/rest_application_spec.rb
458
- - spec/spec_helper.rb
459
- - spec/coverage_helper.rb
460
- - spec/direct_execution_helper.rb
461
- - spec/keys/server.pem
462
- - spec/keys/example.pem
463
- - spec/keys/example_private.pem
464
- - features/core_feature.rb
463
+ - spec/rhc/command_spec.rb
464
+ - features/members_feature.rb
465
465
  - features/assets/deploy.tar.gz
466
+ - features/deployments_feature.rb
467
+ - features/core_feature.rb
466
468
  - features/keys_feature.rb
467
469
  - features/domains_feature.rb
468
- - features/members_feature.rb
469
- - features/deployments_feature.rb