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