rhc 1.25.3 → 1.26.9
Sign up to get free protection for your applications and to get access to all the features.
- data/autocomplete/rhc_bash +179 -3
- data/features/core_feature.rb +1 -1
- data/features/members_feature.rb +1 -1
- data/features/server_feature.rb +98 -0
- data/lib/rhc/command_runner.rb +8 -9
- data/lib/rhc/commands.rb +13 -3
- data/lib/rhc/commands/base.rb +4 -2
- data/lib/rhc/commands/member.rb +1 -1
- data/lib/rhc/commands/server.rb +189 -3
- data/lib/rhc/commands/setup.rb +1 -1
- data/lib/rhc/config.rb +98 -39
- data/lib/rhc/context_helper.rb +3 -1
- data/lib/rhc/core_ext.rb +18 -10
- data/lib/rhc/exceptions.rb +24 -0
- data/lib/rhc/helpers.rb +11 -18
- data/lib/rhc/highline_extensions.rb +2 -2
- data/lib/rhc/output_helpers.rb +28 -2
- data/lib/rhc/rest/client.rb +0 -2
- data/lib/rhc/rest/membership.rb +1 -3
- data/lib/rhc/rest/mock.rb +2 -1
- data/lib/rhc/server_helpers.rb +46 -0
- data/lib/rhc/servers.rb +192 -0
- data/lib/rhc/usage_templates/command_help.erb +1 -1
- data/lib/rhc/wizard.rb +76 -15
- data/spec/direct_execution_helper.rb +1 -0
- data/spec/rhc/commands/app_spec.rb +2 -0
- data/spec/rhc/commands/server_spec.rb +493 -38
- data/spec/rhc/commands/setup_spec.rb +1 -0
- data/spec/rhc/servers_spec.rb +191 -0
- data/spec/rhc/wizard_spec.rb +19 -2
- data/spec/spec_helper.rb +20 -0
- data/spec/wizard_spec_helper.rb +28 -5
- metadata +11 -5
data/autocomplete/rhc_bash
CHANGED
@@ -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="
|
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
|
data/features/core_feature.rb
CHANGED
@@ -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
|
|
data/features/members_feature.rb
CHANGED
@@ -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
|
data/lib/rhc/command_runner.rb
CHANGED
@@ -14,21 +14,20 @@ module RHC
|
|
14
14
|
#:nocov:
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
if @args.include?(
|
19
|
-
@args.delete
|
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
|
-
|
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
|
data/lib/rhc/commands.rb
CHANGED
@@ -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
|
-
@
|
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.
|
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)
|