crowbar-client 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/crowbar/client.rb +6 -0
- data/lib/crowbar/client/app.rb +3 -0
- data/lib/crowbar/client/app/barclamp.rb +2 -2
- data/lib/crowbar/client/app/base.rb +24 -1
- data/lib/crowbar/client/app/batch.rb +4 -4
- data/lib/crowbar/client/app/entry.rb +4 -0
- data/lib/crowbar/client/app/host_ip.rb +4 -4
- data/lib/crowbar/client/app/installer.rb +103 -0
- data/lib/crowbar/client/app/interface.rb +4 -4
- data/lib/crowbar/client/app/node.rb +34 -34
- data/lib/crowbar/client/app/proposal.rb +14 -14
- data/lib/crowbar/client/app/repository.rb +10 -10
- data/lib/crowbar/client/app/reset.rb +4 -4
- data/lib/crowbar/client/app/role.rb +4 -4
- data/lib/crowbar/client/app/server.rb +2 -2
- data/lib/crowbar/client/app/virtual_ip.rb +4 -4
- data/lib/crowbar/client/command.rb +3 -0
- data/lib/crowbar/client/command/installer.rb +29 -0
- data/lib/crowbar/client/command/installer/start.rb +50 -0
- data/lib/crowbar/client/command/installer/status.rb +68 -0
- data/lib/crowbar/client/command/proposal/create.rb +19 -5
- data/lib/crowbar/client/command/proposal/edit.rb +19 -5
- data/lib/crowbar/client/request.rb +3 -0
- data/lib/crowbar/client/request/base.rb +12 -0
- data/lib/crowbar/client/request/installer.rb +29 -0
- data/lib/crowbar/client/request/installer/start.rb +44 -0
- data/lib/crowbar/client/request/installer/status.rb +36 -0
- data/lib/crowbar/client/version.rb +1 -1
- data/spec/crowbar/client/command/installer/start_spec.rb +40 -0
- data/spec/crowbar/client/command/installer/status_spec.rb +39 -0
- data/spec/crowbar/client/request/installer/start_spec.rb +55 -0
- data/spec/crowbar/client/request/installer/status_spec.rb +65 -0
- data/spec/support/request_examples.rb +4 -0
- metadata +84 -69
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ecbbfcbd11f4a3f271ac148b1b133a263d3bf8f
|
4
|
+
data.tar.gz: 8337b224ca654899291ab830294c173dbfe57403
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b7d1e3f3d934c75f3edde8df6db94b9f7843a38d9ac70e27ffa9481e341f89eda52aaa31414b5493d21fa366a835bba4d03228351faa19bed14d97621f56ac2
|
7
|
+
data.tar.gz: c27a8bded618b8ec1bc361519a079e4549d1090d8614ec195b1acbf3d6d9dfa712e91c45983e577116779a75fe93afb54dc031caf5d1c20ef3793f9149d65970
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [2.2.0](https://github.com/crowbar/crowbar-client/releases/tag/v2.2.0) - 2015-12-03
|
4
|
+
|
5
|
+
* BUGFIX
|
6
|
+
* Fixed reading of files for proposal create/edit (@tboerger)
|
7
|
+
* ENHANCEMENT
|
8
|
+
* Added proper error handling to file read on proposal (@tboerger)
|
9
|
+
* Added subcommands for installation of admin server (@MaximilianMeister)
|
10
|
+
* Added proper error handling for general connection (@tboerger)
|
11
|
+
|
3
12
|
## [2.1.0](https://github.com/crowbar/crowbar-client/releases/tag/v2.1.0) - 2015-11-25
|
4
13
|
|
5
14
|
* BREAKING
|
data/lib/crowbar/client.rb
CHANGED
@@ -49,6 +49,12 @@ module Crowbar
|
|
49
49
|
class InvalidJsonError < SimpleCatchableError
|
50
50
|
end
|
51
51
|
|
52
|
+
class InternalServerError < SimpleCatchableError
|
53
|
+
end
|
54
|
+
|
55
|
+
class NotAuthorizedError < SimpleCatchableError
|
56
|
+
end
|
57
|
+
|
52
58
|
class UnavailableBarclampError < SimpleCatchableError
|
53
59
|
def initialize(barclamp)
|
54
60
|
super("Barclamp #{barclamp} is not available")
|
data/lib/crowbar/client/app.rb
CHANGED
@@ -38,12 +38,22 @@ module Crowbar
|
|
38
38
|
end
|
39
39
|
|
40
40
|
no_commands do
|
41
|
+
include Mixin::Format
|
42
|
+
|
41
43
|
def say(message)
|
42
44
|
$stdout.puts message
|
43
45
|
end
|
44
46
|
|
45
47
|
def err(message, exit_code = nil)
|
46
|
-
|
48
|
+
case provide_format
|
49
|
+
when :json
|
50
|
+
$stderr.puts JSON.pretty_generate(
|
51
|
+
error: message
|
52
|
+
)
|
53
|
+
else
|
54
|
+
$stderr.puts message
|
55
|
+
end
|
56
|
+
|
47
57
|
exit(exit_code) unless exit_code.nil?
|
48
58
|
end
|
49
59
|
|
@@ -56,6 +66,19 @@ module Crowbar
|
|
56
66
|
args
|
57
67
|
]
|
58
68
|
end
|
69
|
+
|
70
|
+
def catch_errors(error)
|
71
|
+
case error
|
72
|
+
when SimpleCatchableError
|
73
|
+
err error.message, 1
|
74
|
+
when Errno::ECONNREFUSED
|
75
|
+
err "Connection to server refused", 1
|
76
|
+
when SocketError
|
77
|
+
err "Unknown server to connect to", 1
|
78
|
+
else
|
79
|
+
raise error
|
80
|
+
end
|
81
|
+
end
|
59
82
|
end
|
60
83
|
end
|
61
84
|
end
|
@@ -54,8 +54,8 @@ module Crowbar
|
|
54
54
|
file: file
|
55
55
|
)
|
56
56
|
).execute
|
57
|
-
rescue
|
58
|
-
|
57
|
+
rescue => e
|
58
|
+
catch_errors(e)
|
59
59
|
end
|
60
60
|
|
61
61
|
desc "export PROPOSAL [PROPOSAL]",
|
@@ -91,8 +91,8 @@ module Crowbar
|
|
91
91
|
proposals: proposals
|
92
92
|
)
|
93
93
|
).execute
|
94
|
-
rescue
|
95
|
-
|
94
|
+
rescue => e
|
95
|
+
catch_errors(e)
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
@@ -113,6 +113,10 @@ module Crowbar
|
|
113
113
|
desc "server [COMMANDS]",
|
114
114
|
"Server specific commands, call without params for help"
|
115
115
|
subcommand "server", Crowbar::Client::App::Server
|
116
|
+
|
117
|
+
desc "installer [COMMANDS]",
|
118
|
+
"Installer specific commands, call without params for help"
|
119
|
+
subcommand "installer", Crowbar::Client::App::Installer
|
116
120
|
end
|
117
121
|
end
|
118
122
|
end
|
@@ -36,8 +36,8 @@ module Crowbar
|
|
36
36
|
suggestion: suggestion
|
37
37
|
)
|
38
38
|
).execute
|
39
|
-
rescue
|
40
|
-
|
39
|
+
rescue => e
|
40
|
+
catch_errors(e)
|
41
41
|
end
|
42
42
|
|
43
43
|
desc "deallocate PROPOSAL NODE NETWORK",
|
@@ -56,8 +56,8 @@ module Crowbar
|
|
56
56
|
network: network
|
57
57
|
)
|
58
58
|
).execute
|
59
|
-
rescue
|
60
|
-
|
59
|
+
rescue => e
|
60
|
+
catch_errors(e)
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, SUSE Linux GmbH
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
module Crowbar
|
18
|
+
module Client
|
19
|
+
module App
|
20
|
+
class Installer < Base
|
21
|
+
desc "status",
|
22
|
+
"Show current installer status"
|
23
|
+
|
24
|
+
long_desc <<-LONGDESC
|
25
|
+
`status` will print out information about the current status
|
26
|
+
of the installer. You can display the list in different output
|
27
|
+
formats and you can filter the list by any search criteria.
|
28
|
+
|
29
|
+
With --format <format> option you can choose an output format
|
30
|
+
with the available options table, json or plain. You can also
|
31
|
+
use the shortcut options --table, --json or --plain.
|
32
|
+
|
33
|
+
With --filter <filter> option you can limit the result of
|
34
|
+
printed out elements. You can use any substring that is part
|
35
|
+
of the found elements.
|
36
|
+
LONGDESC
|
37
|
+
|
38
|
+
method_option :format,
|
39
|
+
type: :string,
|
40
|
+
default: "table",
|
41
|
+
banner: "<format>",
|
42
|
+
desc: "Format of the output, valid formats are table, json or plain"
|
43
|
+
|
44
|
+
method_option :table,
|
45
|
+
type: :boolean,
|
46
|
+
default: false,
|
47
|
+
aliases: [],
|
48
|
+
desc: "Format output as table, a shortcut for --format table option"
|
49
|
+
|
50
|
+
method_option :json,
|
51
|
+
type: :boolean,
|
52
|
+
default: false,
|
53
|
+
aliases: [],
|
54
|
+
desc: "Format output as table, a shortcut for --format table option"
|
55
|
+
|
56
|
+
method_option :plain,
|
57
|
+
type: :boolean,
|
58
|
+
default: false,
|
59
|
+
aliases: [],
|
60
|
+
desc: "Format output as table, a shortcut for --format table option"
|
61
|
+
|
62
|
+
method_option :filter,
|
63
|
+
type: :string,
|
64
|
+
default: nil,
|
65
|
+
banner: "<filter>",
|
66
|
+
desc: "Filter by criteria, display only data that contains filter"
|
67
|
+
|
68
|
+
def status
|
69
|
+
Command::Installer::Status.new(
|
70
|
+
*command_params
|
71
|
+
).execute
|
72
|
+
rescue => e
|
73
|
+
catch_errors(e)
|
74
|
+
end
|
75
|
+
|
76
|
+
desc "start",
|
77
|
+
"Start the insallation of Crowbar"
|
78
|
+
|
79
|
+
long_desc <<-LONGDESC
|
80
|
+
`start` will trigger the installation of the Administration Server.
|
81
|
+
|
82
|
+
With --force you can enforce a reinstallation if the installation
|
83
|
+
has already been finished. Be careful with that option as you will
|
84
|
+
destroy an already existing installation.
|
85
|
+
LONGDESC
|
86
|
+
|
87
|
+
method_option :force,
|
88
|
+
type: :boolean,
|
89
|
+
default: false,
|
90
|
+
aliases: [],
|
91
|
+
desc: "Force Administration Server installation"
|
92
|
+
|
93
|
+
def start
|
94
|
+
Command::Installer::Start.new(
|
95
|
+
*command_params
|
96
|
+
).execute
|
97
|
+
rescue => e
|
98
|
+
catch_errors(e)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -34,8 +34,8 @@ module Crowbar
|
|
34
34
|
network: network
|
35
35
|
)
|
36
36
|
).execute
|
37
|
-
rescue
|
38
|
-
|
37
|
+
rescue => e
|
38
|
+
catch_errors(e)
|
39
39
|
end
|
40
40
|
|
41
41
|
desc "disable PROPOSAL NODE NETWORK",
|
@@ -54,8 +54,8 @@ module Crowbar
|
|
54
54
|
network: network
|
55
55
|
)
|
56
56
|
).execute
|
57
|
-
rescue
|
58
|
-
|
57
|
+
rescue => e
|
58
|
+
catch_errors(e)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -80,8 +80,8 @@ module Crowbar
|
|
80
80
|
Command::Node::Status.new(
|
81
81
|
*command_params
|
82
82
|
).execute
|
83
|
-
rescue
|
84
|
-
|
83
|
+
rescue => e
|
84
|
+
catch_errors(e)
|
85
85
|
end
|
86
86
|
|
87
87
|
desc "list",
|
@@ -154,8 +154,8 @@ module Crowbar
|
|
154
154
|
Command::Node::List.new(
|
155
155
|
*command_params
|
156
156
|
).execute
|
157
|
-
rescue
|
158
|
-
|
157
|
+
rescue => e
|
158
|
+
catch_errors(e)
|
159
159
|
end
|
160
160
|
|
161
161
|
desc "show NAME_OR_ALIAS",
|
@@ -215,8 +215,8 @@ module Crowbar
|
|
215
215
|
name: name
|
216
216
|
)
|
217
217
|
).execute
|
218
|
-
rescue
|
219
|
-
|
218
|
+
rescue => e
|
219
|
+
catch_errors(e)
|
220
220
|
end
|
221
221
|
|
222
222
|
desc "hardware NAME_OR_ALIAS",
|
@@ -233,8 +233,8 @@ module Crowbar
|
|
233
233
|
name: name
|
234
234
|
)
|
235
235
|
).execute
|
236
|
-
rescue
|
237
|
-
|
236
|
+
rescue => e
|
237
|
+
catch_errors(e)
|
238
238
|
end
|
239
239
|
|
240
240
|
desc "identify NAME_OR_ALIAS",
|
@@ -251,8 +251,8 @@ module Crowbar
|
|
251
251
|
name: name
|
252
252
|
)
|
253
253
|
).execute
|
254
|
-
rescue
|
255
|
-
|
254
|
+
rescue => e
|
255
|
+
catch_errors(e)
|
256
256
|
end
|
257
257
|
|
258
258
|
desc "delete NAME_OR_ALIAS",
|
@@ -269,8 +269,8 @@ module Crowbar
|
|
269
269
|
name: name
|
270
270
|
)
|
271
271
|
).execute
|
272
|
-
rescue
|
273
|
-
|
272
|
+
rescue => e
|
273
|
+
catch_errors(e)
|
274
274
|
end
|
275
275
|
|
276
276
|
desc "reinstall NAME_OR_ALIAS",
|
@@ -287,8 +287,8 @@ module Crowbar
|
|
287
287
|
name: name
|
288
288
|
)
|
289
289
|
).execute
|
290
|
-
rescue
|
291
|
-
|
290
|
+
rescue => e
|
291
|
+
catch_errors(e)
|
292
292
|
end
|
293
293
|
|
294
294
|
desc "reset NAME_OR_ALIAS",
|
@@ -305,8 +305,8 @@ module Crowbar
|
|
305
305
|
name: name
|
306
306
|
)
|
307
307
|
).execute
|
308
|
-
rescue
|
309
|
-
|
308
|
+
rescue => e
|
309
|
+
catch_errors(e)
|
310
310
|
end
|
311
311
|
|
312
312
|
desc "shutdown NAME_OR_ALIAS",
|
@@ -323,8 +323,8 @@ module Crowbar
|
|
323
323
|
name: name
|
324
324
|
)
|
325
325
|
).execute
|
326
|
-
rescue
|
327
|
-
|
326
|
+
rescue => e
|
327
|
+
catch_errors(e)
|
328
328
|
end
|
329
329
|
|
330
330
|
desc "reboot NAME_OR_ALIAS",
|
@@ -341,8 +341,8 @@ module Crowbar
|
|
341
341
|
name: name
|
342
342
|
)
|
343
343
|
).execute
|
344
|
-
rescue
|
345
|
-
|
344
|
+
rescue => e
|
345
|
+
catch_errors(e)
|
346
346
|
end
|
347
347
|
|
348
348
|
desc "powercycle NAME_OR_ALIAS",
|
@@ -359,8 +359,8 @@ module Crowbar
|
|
359
359
|
name: name
|
360
360
|
)
|
361
361
|
).execute
|
362
|
-
rescue
|
363
|
-
|
362
|
+
rescue => e
|
363
|
+
catch_errors(e)
|
364
364
|
end
|
365
365
|
|
366
366
|
desc "poweroff NAME_OR_ALIAS",
|
@@ -377,8 +377,8 @@ module Crowbar
|
|
377
377
|
name: name
|
378
378
|
)
|
379
379
|
).execute
|
380
|
-
rescue
|
381
|
-
|
380
|
+
rescue => e
|
381
|
+
catch_errors(e)
|
382
382
|
end
|
383
383
|
|
384
384
|
desc "poweron NAME_OR_ALIAS",
|
@@ -395,8 +395,8 @@ module Crowbar
|
|
395
395
|
name: name
|
396
396
|
)
|
397
397
|
).execute
|
398
|
-
rescue
|
399
|
-
|
398
|
+
rescue => e
|
399
|
+
catch_errors(e)
|
400
400
|
end
|
401
401
|
|
402
402
|
desc "allocate NAME_OR_ALIAS",
|
@@ -413,8 +413,8 @@ module Crowbar
|
|
413
413
|
name: name
|
414
414
|
)
|
415
415
|
).execute
|
416
|
-
rescue
|
417
|
-
|
416
|
+
rescue => e
|
417
|
+
catch_errors(e)
|
418
418
|
end
|
419
419
|
|
420
420
|
desc "role NAME_OR_ALIAS ROLE",
|
@@ -432,8 +432,8 @@ module Crowbar
|
|
432
432
|
value: value
|
433
433
|
)
|
434
434
|
).execute
|
435
|
-
rescue
|
436
|
-
|
435
|
+
rescue => e
|
436
|
+
catch_errors(e)
|
437
437
|
end
|
438
438
|
|
439
439
|
desc "rename NAME_OR_ALIAS ALIAS",
|
@@ -451,8 +451,8 @@ module Crowbar
|
|
451
451
|
value: value
|
452
452
|
)
|
453
453
|
).execute
|
454
|
-
rescue
|
455
|
-
|
454
|
+
rescue => e
|
455
|
+
catch_errors(e)
|
456
456
|
end
|
457
457
|
|
458
458
|
desc "transition NAME_OR_ALIAS STATE",
|
@@ -470,8 +470,8 @@ module Crowbar
|
|
470
470
|
state: state
|
471
471
|
)
|
472
472
|
).execute
|
473
|
-
rescue
|
474
|
-
|
473
|
+
rescue => e
|
474
|
+
catch_errors(e)
|
475
475
|
end
|
476
476
|
end
|
477
477
|
end
|