rhc 1.25.3 → 1.26.9

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.
@@ -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)