rhc 1.25.3 → 1.26.9

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-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 member-update port-forward scp server setup snapshot snapshot-restore snapshot-save ssh sshkey sshkey-add sshkey-list sshkey-remove sshkey-show tail team team-create team-delete team-leave team-list team-show 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 member-update port-forward scp server server-add server-configure server-list server-remove server-show server-status server-use setup snapshot snapshot-restore snapshot-save ssh sshkey sshkey-add sshkey-list sshkey-remove sshkey-show tail team team-create team-delete team-leave team-list team-show 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-scale-down app-scale-up app-scp 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 create-team delete-all-authorization delete-app delete-authorization delete-cert-alias delete-domain delete-team 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 leave-team list-alias list-authorization list-cartridge list-deployment list-domain list-env list-member list-sshkey list-team logout member member-add member-list member-remove member-update 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 scp server set-env setup show-app show-cartridge show-deployment show-domain show-env show-sshkey show-team 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 team team-create team-delete team-leave team-list team-show teams threaddump tidy-app unset-env update-cert-alias update-member"
15
+ opts="account account-logout activate-deployment add-alias add-authorization add-cartridge add-member add-server 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-scp 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 configure-server create-app create-domain create-team delete-all-authorization delete-app delete-authorization delete-cert-alias delete-domain delete-team 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 leave-team list-alias list-authorization list-cartridge list-deployment list-domain list-env list-member list-server list-sshkey list-team logout member member-add member-list member-remove member-update members port-forward reload-app reload-cartridge remove-alias remove-cartridge remove-member remove-server remove-sshkey rename-domain restart-app restart-cartridge restore-snapshot save-snapshot scale-cartridge scale-down-app scale-up-app scp server server-add server-configure server-list server-remove server-show server-status server-use servers set-env setup show-app show-cartridge show-deployment show-domain show-env show-server show-sshkey show-team snapshot snapshot-restore snapshot-save ssh sshkey sshkey-add sshkey-list sshkey-remove sshkey-show start-app start-cartridge status-cartridge status-server stop-app stop-cartridge storage-cartridge tail team team-create team-delete team-leave team-list team-show teams threaddump tidy-app unset-env update-cert-alias update-member use-server"
16
16
  fi
17
17
  else
18
18
  prev="${COMP_WORDS[@]:0:COMP_CWORD}"
@@ -84,6 +84,14 @@ _rhc()
84
84
  fi
85
85
  ;;
86
86
 
87
+ "rhc add-server")
88
+ if [[ "$cur" == -* ]]; then
89
+ opts="--insecure --nickname --no-insecure --no-use-authorization-tokens --rhlogin --server --skip-wizard --use --use-authorization-tokens"
90
+ else
91
+ opts=""
92
+ fi
93
+ ;;
94
+
87
95
  "rhc add-sshkey")
88
96
  if [[ "$cur" == -* ]]; then
89
97
  opts="--confirm --content --type"
@@ -192,7 +200,7 @@ _rhc()
192
200
  if [[ "$cur" == -* ]]; then
193
201
  opts=""
194
202
  else
195
- opts="env snapshot create delete start stop scale-up scale-down force-stop restart reload tidy show deploy configure"
203
+ opts="create delete start stop scale-up scale-down force-stop restart reload tidy show deploy configure env snapshot"
196
204
  fi
197
205
  ;;
198
206
 
@@ -764,6 +772,14 @@ _rhc()
764
772
  fi
765
773
  ;;
766
774
 
775
+ "rhc configure-server")
776
+ if [[ "$cur" == -* ]]; then
777
+ opts="--hostname --insecure --nickname --no-insecure --no-use-authorization-tokens --rhlogin --server --skip-wizard --use --use-authorization-tokens"
778
+ else
779
+ opts=""
780
+ fi
781
+ ;;
782
+
767
783
  "rhc create-app")
768
784
  if [[ "$cur" == -* ]]; then
769
785
  opts="--app --dns --enable-jenkins --env --from-app --from-code --gear-size --git --namespace --no-dns --no-git --no-keys --no-scaling --repo --scaling --type"
@@ -1236,6 +1252,14 @@ _rhc()
1236
1252
  fi
1237
1253
  ;;
1238
1254
 
1255
+ "rhc list-server")
1256
+ if [[ "$cur" == -* ]]; then
1257
+ opts=""
1258
+ else
1259
+ opts=""
1260
+ fi
1261
+ ;;
1262
+
1239
1263
  "rhc list-sshkey")
1240
1264
  if [[ "$cur" == -* ]]; then
1241
1265
  opts=""
@@ -1388,6 +1412,14 @@ _rhc()
1388
1412
  fi
1389
1413
  ;;
1390
1414
 
1415
+ "rhc remove-server")
1416
+ if [[ "$cur" == -* ]]; then
1417
+ opts="--server"
1418
+ else
1419
+ opts=""
1420
+ fi
1421
+ ;;
1422
+
1391
1423
  "rhc remove-sshkey")
1392
1424
  if [[ "$cur" == -* ]]; then
1393
1425
  opts=""
@@ -1469,6 +1501,126 @@ _rhc()
1469
1501
  ;;
1470
1502
 
1471
1503
  "rhc server")
1504
+ if [[ "$cur" == -* ]]; then
1505
+ opts=""
1506
+ else
1507
+ opts="status add list use remove configure show"
1508
+ fi
1509
+ ;;
1510
+
1511
+ "rhc server add")
1512
+ if [[ "$cur" == -* ]]; then
1513
+ opts="--insecure --nickname --no-insecure --no-use-authorization-tokens --rhlogin --server --skip-wizard --use --use-authorization-tokens"
1514
+ else
1515
+ opts=""
1516
+ fi
1517
+ ;;
1518
+
1519
+ "rhc server configure")
1520
+ if [[ "$cur" == -* ]]; then
1521
+ opts="--hostname --insecure --nickname --no-insecure --no-use-authorization-tokens --rhlogin --server --skip-wizard --use --use-authorization-tokens"
1522
+ else
1523
+ opts=""
1524
+ fi
1525
+ ;;
1526
+
1527
+ "rhc server list")
1528
+ if [[ "$cur" == -* ]]; then
1529
+ opts=""
1530
+ else
1531
+ opts=""
1532
+ fi
1533
+ ;;
1534
+
1535
+ "rhc server remove")
1536
+ if [[ "$cur" == -* ]]; then
1537
+ opts="--server"
1538
+ else
1539
+ opts=""
1540
+ fi
1541
+ ;;
1542
+
1543
+ "rhc server show")
1544
+ if [[ "$cur" == -* ]]; then
1545
+ opts="--server"
1546
+ else
1547
+ opts=""
1548
+ fi
1549
+ ;;
1550
+
1551
+ "rhc server status")
1552
+ if [[ "$cur" == -* ]]; then
1553
+ opts="--server"
1554
+ else
1555
+ opts=""
1556
+ fi
1557
+ ;;
1558
+
1559
+ "rhc server use")
1560
+ if [[ "$cur" == -* ]]; then
1561
+ opts="--server"
1562
+ else
1563
+ opts=""
1564
+ fi
1565
+ ;;
1566
+
1567
+ "rhc server-add")
1568
+ if [[ "$cur" == -* ]]; then
1569
+ opts="--insecure --nickname --no-insecure --no-use-authorization-tokens --rhlogin --server --skip-wizard --use --use-authorization-tokens"
1570
+ else
1571
+ opts=""
1572
+ fi
1573
+ ;;
1574
+
1575
+ "rhc server-configure")
1576
+ if [[ "$cur" == -* ]]; then
1577
+ opts="--hostname --insecure --nickname --no-insecure --no-use-authorization-tokens --rhlogin --server --skip-wizard --use --use-authorization-tokens"
1578
+ else
1579
+ opts=""
1580
+ fi
1581
+ ;;
1582
+
1583
+ "rhc server-list")
1584
+ if [[ "$cur" == -* ]]; then
1585
+ opts=""
1586
+ else
1587
+ opts=""
1588
+ fi
1589
+ ;;
1590
+
1591
+ "rhc server-remove")
1592
+ if [[ "$cur" == -* ]]; then
1593
+ opts="--server"
1594
+ else
1595
+ opts=""
1596
+ fi
1597
+ ;;
1598
+
1599
+ "rhc server-show")
1600
+ if [[ "$cur" == -* ]]; then
1601
+ opts="--server"
1602
+ else
1603
+ opts=""
1604
+ fi
1605
+ ;;
1606
+
1607
+ "rhc server-status")
1608
+ if [[ "$cur" == -* ]]; then
1609
+ opts="--server"
1610
+ else
1611
+ opts=""
1612
+ fi
1613
+ ;;
1614
+
1615
+ "rhc server-use")
1616
+ if [[ "$cur" == -* ]]; then
1617
+ opts="--server"
1618
+ else
1619
+ opts=""
1620
+ fi
1621
+ ;;
1622
+
1623
+ "rhc servers")
1472
1624
  if [[ "$cur" == -* ]]; then
1473
1625
  opts=""
1474
1626
  else
@@ -1532,6 +1684,14 @@ _rhc()
1532
1684
  fi
1533
1685
  ;;
1534
1686
 
1687
+ "rhc show-server")
1688
+ if [[ "$cur" == -* ]]; then
1689
+ opts="--server"
1690
+ else
1691
+ opts=""
1692
+ fi
1693
+ ;;
1694
+
1535
1695
  "rhc show-sshkey")
1536
1696
  if [[ "$cur" == -* ]]; then
1537
1697
  opts=""
@@ -1692,6 +1852,14 @@ _rhc()
1692
1852
  fi
1693
1853
  ;;
1694
1854
 
1855
+ "rhc status-server")
1856
+ if [[ "$cur" == -* ]]; then
1857
+ opts="--server"
1858
+ else
1859
+ opts=""
1860
+ fi
1861
+ ;;
1862
+
1695
1863
  "rhc stop-app")
1696
1864
  if [[ "$cur" == -* ]]; then
1697
1865
  opts="--app --application-id --namespace"
@@ -1860,6 +2028,14 @@ _rhc()
1860
2028
  fi
1861
2029
  ;;
1862
2030
 
2031
+ "rhc use-server")
2032
+ if [[ "$cur" == -* ]]; then
2033
+ opts="--server"
2034
+ else
2035
+ opts=""
2036
+ fi
2037
+ ;;
2038
+
1863
2039
  esac
1864
2040
  IFS=$SAVE_IFS
1865
2041
  fi
@@ -163,7 +163,7 @@ describe "rhc core scenarios" do
163
163
  context "with a scalable app" do
164
164
  before(:each) do
165
165
  standard_config
166
- has_gears_available(1)
166
+ has_gears_available(2) # 1 for the app create, 1 for the scale
167
167
  @app = has_a_scalable_application
168
168
  end
169
169
 
@@ -17,7 +17,7 @@ describe "rhc member scenarios" do
17
17
  r = rhc 'show-domain', domain.name
18
18
  r.status.should == 0
19
19
  r.stdout.should_not match "Members:"
20
- r.stdout.should match "owned by #{domain.owner}"
20
+ r.stdout.should match "owned by #{domain.owner.name}"
21
21
  end
22
22
 
23
23
  it "should prevent leaving the domain for the owner" do
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+ require 'direct_execution_helper'
3
+ require 'rhc/helpers'
4
+
5
+ describe "rhc server scenarios" do
6
+
7
+ context "with standard config" do
8
+ before(:all){ standard_config }
9
+
10
+ it "should list the default server" do
11
+ r = ensure_command 'servers'
12
+ r.stdout.should match /Server 'server1' \(in use\)/
13
+ r.stdout.should match /Hostname:\s+#{server}/
14
+ r.stdout.should match /Login:\s+#{rhlogin}/
15
+ r.stdout.should match /Use Auth Tokens:\s+true/
16
+ r.stdout.should match /Insecure:\s+true/
17
+ should_list_servers(1)
18
+ end
19
+
20
+ it "should and and remove servers" do
21
+ should_add_mock_servers(2)
22
+ should_list_servers(3)
23
+ should_remove_server('mock1')
24
+ should_remove_server('mock2')
25
+ should_list_servers(1)
26
+ end
27
+ end
28
+
29
+ context "with a clean configuration" do
30
+ before(:all){ use_clean_config }
31
+
32
+ it "should add one working server" do
33
+ should_list_servers(0)
34
+ should_add_working_server
35
+ should_list_servers(1)
36
+ end
37
+ end
38
+
39
+ private
40
+ def ensure_command(*args)
41
+ r = rhc *args
42
+ r.status.should == 0
43
+ r
44
+ end
45
+
46
+ def should_list_servers(quantity)
47
+ r = ensure_command 'servers'
48
+ if quantity == 0
49
+ r.stdout.should match /You don't have any servers configured/
50
+ else
51
+ r.stdout.should match /You have #{RHC::Helpers.pluralize(quantity, 'server')} configured/
52
+ end
53
+ r
54
+ end
55
+
56
+ def should_add_mock_servers(quantity)
57
+ Array(1..quantity).each do |i|
58
+ new_server = "foo#{i}.openshift.com"
59
+ new_user = "user#{i}"
60
+ new_nickname = "mock#{i}"
61
+
62
+ r = ensure_command 'server', 'add', new_server, new_nickname, '-l', new_user, '--skip-wizard'
63
+ r.stdout.should match /Saving server configuration to .*servers\.yml .* done/
64
+
65
+ r = ensure_command 'servers'
66
+ r.stdout.should match /Server '#{new_nickname}'$/
67
+ r.stdout.should match /Hostname:\s+#{new_server}/
68
+ r.stdout.should match /Login:\s+#{new_user}/
69
+ end
70
+ end
71
+
72
+ def should_add_working_server
73
+ r = rhc 'server', 'add', server, '-l', rhlogin, '--insecure', '--use', :with => ['password', 'yes']
74
+ r.stdout.should match /Saving configuration to .*express\.conf .* done/
75
+ r.status.should == 0
76
+
77
+ r = ensure_command 'servers'
78
+ r.stdout.should match /Server 'server1' \(in use\)/
79
+ r.stdout.should match /Hostname:\s+#{server}/
80
+ r.stdout.should match /Login:\s+#{rhlogin}/
81
+ r.stdout.should match /Use Auth Tokens:\s+true/
82
+ r.stdout.should match /Insecure:\s+true/
83
+ end
84
+
85
+ def should_remove_server(server)
86
+ r = ensure_command 'server', 'remove', server
87
+ r.stdout.should match /Removing.*done/
88
+ r
89
+ end
90
+
91
+ def server
92
+ ENV['RHC_SERVER'] || 'localhost'
93
+ end
94
+
95
+ def rhlogin
96
+ ENV['TEST_USERNAME']
97
+ end
98
+ end
@@ -14,21 +14,20 @@ module RHC
14
14
  #:nocov:
15
15
  end
16
16
 
17
- def options_parse_trace
18
- if @args.include?("--trace")
19
- @args.delete "--trace"
17
+ def delete_args(*switches)
18
+ if @args.any?{|i| switches.include?(i)}
19
+ switches.each{|switch| @args.delete switch}
20
20
  return true
21
21
  end
22
22
  false
23
23
  end
24
24
 
25
+ def options_parse_trace
26
+ delete_args("--trace")
27
+ end
28
+
25
29
  def options_parse_debug
26
- if @args.include?("-d") or @args.include?("--debug")
27
- @args.delete "-d"
28
- @args.delete "--debug"
29
- return true
30
- end
31
- false
30
+ delete_args("-d", "--debug")
32
31
  end
33
32
 
34
33
  def options_parse_version
@@ -6,9 +6,11 @@ require 'commander/command'
6
6
  module Commander
7
7
  class Command
8
8
  attr_accessor :default_action, :root, :info
9
+
9
10
  def default_action?
10
11
  default_action.present?
11
12
  end
13
+
12
14
  def root?
13
15
  root.present?
14
16
  end
@@ -81,11 +83,17 @@ module Commander
81
83
  begin
82
84
  @config = RHC::Config.new
83
85
  @config.use_config(config_path) if config_path
86
+ @config.sync_additional_config
87
+
84
88
  $terminal.debug("Using config file #{@config.config_path}")
85
89
 
86
90
  unless clean
87
- @config.to_options.each_pair do |key, value|
91
+ local_command_options = (@options.collect{|o| Commander::Runner.switch_to_sym(o[:switches].last.split.first)} rescue [])
92
+
93
+ @config.to_options.each_pair do |key, value|
94
+ next if local_command_options.include?(key)
88
95
  next if proxy_options.detect{ |arr| arr[0] == key }
96
+
89
97
  if sw = opts.send(:search, :long, key.to_s.gsub(/_/, '-'))
90
98
  _, cb, val = sw.send(:conv_arg, nil, value) {|*exc| raise(*exc) }
91
99
  cb.call(val) if cb
@@ -94,6 +102,7 @@ module Commander
94
102
  end
95
103
  end
96
104
  end
105
+
97
106
  rescue ArgumentError => e
98
107
  n = OptionParser::InvalidOption.new(e.message)
99
108
  n.reason = "The configuration file #{@config.path} contains an invalid setting"
@@ -203,8 +212,7 @@ module RHC
203
212
  if not (cmd.class.suppress_wizard? or
204
213
  options.noprompt or
205
214
  options.help or
206
- config.has_local_config? or
207
- config.has_opts_config?)
215
+ config.has_configs_from_files?)
208
216
 
209
217
  $stderr.puts RHC::Helpers.color("You have not yet configured the OpenShift client tools. Please run 'rhc setup'.", :yellow)
210
218
  end
@@ -217,6 +225,7 @@ module RHC
217
225
  option = instance.global_option(*args, &block).last
218
226
  option.merge!(opts)
219
227
  end
228
+
220
229
  commands.each_pair do |name, opts|
221
230
  name = Array(name)
222
231
  names = [name.reverse.join('-'), name.join(' ')] if name.length > 1
@@ -289,6 +298,7 @@ module RHC
289
298
  # process defaults
290
299
  defaults = {}
291
300
  covers = {}
301
+
292
302
  (opts + args).each do |option_meta|
293
303
  arg = option_meta[:option_symbol] || option_meta[:name] || option_meta[:arg] or next
294
304
  if arg && option_meta[:type] != :list && options[arg].is_a?(Array)