crowbar-client 1.0.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +6 -0
- data/LICENSE +202 -0
- data/README.md +49 -0
- data/bin/crowbar +37 -0
- data/lib/crowbar-client.rb +17 -0
- data/lib/crowbar/client.rb +82 -0
- data/lib/crowbar/client/app.rb +60 -0
- data/lib/crowbar/client/app/barclamp.rb +77 -0
- data/lib/crowbar/client/app/base.rb +97 -0
- data/lib/crowbar/client/app/batch.rb +100 -0
- data/lib/crowbar/client/app/entry.rb +121 -0
- data/lib/crowbar/client/app/host_ip.rb +65 -0
- data/lib/crowbar/client/app/interface.rb +63 -0
- data/lib/crowbar/client/app/network.rb +35 -0
- data/lib/crowbar/client/app/node.rb +451 -0
- data/lib/crowbar/client/app/proposal.rb +300 -0
- data/lib/crowbar/client/app/repository.rb +149 -0
- data/lib/crowbar/client/app/reset.rb +58 -0
- data/lib/crowbar/client/app/role.rb +140 -0
- data/lib/crowbar/client/app/virtual_ip.rb +65 -0
- data/lib/crowbar/client/command.rb +54 -0
- data/lib/crowbar/client/command/barclamp.rb +26 -0
- data/lib/crowbar/client/command/barclamp/list.rb +64 -0
- data/lib/crowbar/client/command/base.rb +55 -0
- data/lib/crowbar/client/command/batch.rb +29 -0
- data/lib/crowbar/client/command/batch/build.rb +36 -0
- data/lib/crowbar/client/command/batch/export.rb +36 -0
- data/lib/crowbar/client/command/host_ip.rb +29 -0
- data/lib/crowbar/client/command/host_ip/allocate.rb +50 -0
- data/lib/crowbar/client/command/host_ip/deallocate.rb +42 -0
- data/lib/crowbar/client/command/interface.rb +29 -0
- data/lib/crowbar/client/command/interface/disable.rb +42 -0
- data/lib/crowbar/client/command/interface/enable.rb +50 -0
- data/lib/crowbar/client/command/node.rb +74 -0
- data/lib/crowbar/client/command/node/allocate.rb +48 -0
- data/lib/crowbar/client/command/node/delete.rb +44 -0
- data/lib/crowbar/client/command/node/hardware.rb +48 -0
- data/lib/crowbar/client/command/node/identify.rb +48 -0
- data/lib/crowbar/client/command/node/list.rb +71 -0
- data/lib/crowbar/client/command/node/powercycle.rb +48 -0
- data/lib/crowbar/client/command/node/poweroff.rb +48 -0
- data/lib/crowbar/client/command/node/poweron.rb +48 -0
- data/lib/crowbar/client/command/node/reboot.rb +48 -0
- data/lib/crowbar/client/command/node/reinstall.rb +48 -0
- data/lib/crowbar/client/command/node/rename.rb +44 -0
- data/lib/crowbar/client/command/node/reset.rb +48 -0
- data/lib/crowbar/client/command/node/role.rb +44 -0
- data/lib/crowbar/client/command/node/show.rb +67 -0
- data/lib/crowbar/client/command/node/shutdown.rb +48 -0
- data/lib/crowbar/client/command/node/status.rb +71 -0
- data/lib/crowbar/client/command/node/transition.rb +44 -0
- data/lib/crowbar/client/command/proposal.rb +44 -0
- data/lib/crowbar/client/command/proposal/commit.rb +50 -0
- data/lib/crowbar/client/command/proposal/create.rb +130 -0
- data/lib/crowbar/client/command/proposal/delete.rb +48 -0
- data/lib/crowbar/client/command/proposal/dequeue.rb +48 -0
- data/lib/crowbar/client/command/proposal/edit.rb +129 -0
- data/lib/crowbar/client/command/proposal/list.rb +68 -0
- data/lib/crowbar/client/command/proposal/show.rb +71 -0
- data/lib/crowbar/client/command/repository.rb +38 -0
- data/lib/crowbar/client/command/repository/activate.rb +44 -0
- data/lib/crowbar/client/command/repository/activate_all.rb +42 -0
- data/lib/crowbar/client/command/repository/deactivate.rb +44 -0
- data/lib/crowbar/client/command/repository/deactivate_all.rb +42 -0
- data/lib/crowbar/client/command/repository/list.rb +71 -0
- data/lib/crowbar/client/command/reset.rb +29 -0
- data/lib/crowbar/client/command/reset/nodes.rb +36 -0
- data/lib/crowbar/client/command/reset/proposal.rb +36 -0
- data/lib/crowbar/client/command/role.rb +29 -0
- data/lib/crowbar/client/command/role/list.rb +70 -0
- data/lib/crowbar/client/command/role/show.rb +70 -0
- data/lib/crowbar/client/command/virtual_ip.rb +29 -0
- data/lib/crowbar/client/command/virtual_ip/allocate.rb +50 -0
- data/lib/crowbar/client/command/virtual_ip/deallocate.rb +42 -0
- data/lib/crowbar/client/config.rb +178 -0
- data/lib/crowbar/client/filter.rb +33 -0
- data/lib/crowbar/client/filter/array.rb +29 -0
- data/lib/crowbar/client/filter/base.rb +41 -0
- data/lib/crowbar/client/filter/hash.rb +33 -0
- data/lib/crowbar/client/filter/subset.rb +45 -0
- data/lib/crowbar/client/formatter.rb +33 -0
- data/lib/crowbar/client/formatter/array.rb +49 -0
- data/lib/crowbar/client/formatter/base.rb +47 -0
- data/lib/crowbar/client/formatter/hash.rb +51 -0
- data/lib/crowbar/client/formatter/nested.rb +134 -0
- data/lib/crowbar/client/mixin.rb +30 -0
- data/lib/crowbar/client/mixin/barclamp.rb +41 -0
- data/lib/crowbar/client/mixin/filter.rb +33 -0
- data/lib/crowbar/client/mixin/format.rb +56 -0
- data/lib/crowbar/client/request.rb +57 -0
- data/lib/crowbar/client/request/barclamp.rb +26 -0
- data/lib/crowbar/client/request/barclamp/list.rb +35 -0
- data/lib/crowbar/client/request/base.rb +71 -0
- data/lib/crowbar/client/request/batch.rb +29 -0
- data/lib/crowbar/client/request/batch/build.rb +33 -0
- data/lib/crowbar/client/request/batch/export.rb +33 -0
- data/lib/crowbar/client/request/host_ip.rb +29 -0
- data/lib/crowbar/client/request/host_ip/allocate.rb +50 -0
- data/lib/crowbar/client/request/host_ip/deallocate.rb +48 -0
- data/lib/crowbar/client/request/interface.rb +29 -0
- data/lib/crowbar/client/request/interface/disable.rb +48 -0
- data/lib/crowbar/client/request/interface/enable.rb +48 -0
- data/lib/crowbar/client/request/node.rb +47 -0
- data/lib/crowbar/client/request/node/action.rb +39 -0
- data/lib/crowbar/client/request/node/delete.rb +38 -0
- data/lib/crowbar/client/request/node/list.rb +37 -0
- data/lib/crowbar/client/request/node/rename.rb +47 -0
- data/lib/crowbar/client/request/node/role.rb +47 -0
- data/lib/crowbar/client/request/node/show.rb +38 -0
- data/lib/crowbar/client/request/node/status.rb +36 -0
- data/lib/crowbar/client/request/node/transition.rb +48 -0
- data/lib/crowbar/client/request/party.rb +79 -0
- data/lib/crowbar/client/request/proposal.rb +47 -0
- data/lib/crowbar/client/request/proposal/commit.rb +40 -0
- data/lib/crowbar/client/request/proposal/create.rb +46 -0
- data/lib/crowbar/client/request/proposal/delete.rb +39 -0
- data/lib/crowbar/client/request/proposal/dequeue.rb +40 -0
- data/lib/crowbar/client/request/proposal/edit.rb +47 -0
- data/lib/crowbar/client/request/proposal/list.rb +38 -0
- data/lib/crowbar/client/request/proposal/show.rb +39 -0
- data/lib/crowbar/client/request/proposal/template.rb +39 -0
- data/lib/crowbar/client/request/repository.rb +38 -0
- data/lib/crowbar/client/request/repository/activate.rb +46 -0
- data/lib/crowbar/client/request/repository/activate_all.rb +37 -0
- data/lib/crowbar/client/request/repository/deactivate.rb +46 -0
- data/lib/crowbar/client/request/repository/deactivate_all.rb +37 -0
- data/lib/crowbar/client/request/repository/list.rb +36 -0
- data/lib/crowbar/client/request/reset.rb +29 -0
- data/lib/crowbar/client/request/reset/nodes.rb +33 -0
- data/lib/crowbar/client/request/reset/proposal.rb +33 -0
- data/lib/crowbar/client/request/role.rb +29 -0
- data/lib/crowbar/client/request/role/list.rb +38 -0
- data/lib/crowbar/client/request/role/show.rb +39 -0
- data/lib/crowbar/client/request/virtual_ip.rb +29 -0
- data/lib/crowbar/client/request/virtual_ip/allocate.rb +50 -0
- data/lib/crowbar/client/request/virtual_ip/deallocate.rb +48 -0
- data/lib/crowbar/client/util.rb +27 -0
- data/lib/crowbar/client/util/editor.rb +107 -0
- data/lib/crowbar/client/util/runner.rb +77 -0
- data/lib/crowbar/client/version.rb +33 -0
- data/spec/crowbar/client/app_spec.rb +21 -0
- data/spec/crowbar/client/command/barclamp/list_spec.rb +39 -0
- data/spec/crowbar/client/command/batch/build_spec.rb +39 -0
- data/spec/crowbar/client/command/batch/export_spec.rb +39 -0
- data/spec/crowbar/client/command/host_ip/allocate_spec.rb +39 -0
- data/spec/crowbar/client/command/host_ip/deallocate_spec.rb +39 -0
- data/spec/crowbar/client/command/interface/disable_spec.rb +39 -0
- data/spec/crowbar/client/command/interface/enable_spec.rb +39 -0
- data/spec/crowbar/client/command/node/allocate_spec.rb +39 -0
- data/spec/crowbar/client/command/node/delete_spec.rb +39 -0
- data/spec/crowbar/client/command/node/hardware_spec.rb +39 -0
- data/spec/crowbar/client/command/node/identify_spec.rb +39 -0
- data/spec/crowbar/client/command/node/list_spec.rb +39 -0
- data/spec/crowbar/client/command/node/powercycle_spec.rb +39 -0
- data/spec/crowbar/client/command/node/poweroff_spec.rb +39 -0
- data/spec/crowbar/client/command/node/poweron_spec.rb +39 -0
- data/spec/crowbar/client/command/node/reboot_spec.rb +39 -0
- data/spec/crowbar/client/command/node/reinstall_spec.rb +39 -0
- data/spec/crowbar/client/command/node/rename_spec.rb +39 -0
- data/spec/crowbar/client/command/node/reset_spec.rb +39 -0
- data/spec/crowbar/client/command/node/role_spec.rb +39 -0
- data/spec/crowbar/client/command/node/show_spec.rb +39 -0
- data/spec/crowbar/client/command/node/shutdown_spec.rb +39 -0
- data/spec/crowbar/client/command/node/status_spec.rb +39 -0
- data/spec/crowbar/client/command/node/transition_spec.rb +39 -0
- data/spec/crowbar/client/command/proposal/commit_spec.rb +39 -0
- data/spec/crowbar/client/command/proposal/create_spec.rb +61 -0
- data/spec/crowbar/client/command/proposal/delete_spec.rb +39 -0
- data/spec/crowbar/client/command/proposal/dequeue_spec.rb +39 -0
- data/spec/crowbar/client/command/proposal/edit_spec.rb +62 -0
- data/spec/crowbar/client/command/proposal/list_spec.rb +39 -0
- data/spec/crowbar/client/command/proposal/show_spec.rb +39 -0
- data/spec/crowbar/client/command/repository/activate_all_spec.rb +39 -0
- data/spec/crowbar/client/command/repository/activate_spec.rb +39 -0
- data/spec/crowbar/client/command/repository/deactivate_all_spec.rb +39 -0
- data/spec/crowbar/client/command/repository/deactivate_spec.rb +39 -0
- data/spec/crowbar/client/command/repository/list_spec.rb +39 -0
- data/spec/crowbar/client/command/reset/nodes_spec.rb +39 -0
- data/spec/crowbar/client/command/reset/proposal_spec.rb +39 -0
- data/spec/crowbar/client/command/role/list_spec.rb +39 -0
- data/spec/crowbar/client/command/role/show_spec.rb +39 -0
- data/spec/crowbar/client/command/virtual_ip/allocate_spec.rb +39 -0
- data/spec/crowbar/client/command/virtual_ip/deallocate_spec.rb +39 -0
- data/spec/crowbar/client/filter/array_spec.rb +65 -0
- data/spec/crowbar/client/filter/hash_spec.rb +65 -0
- data/spec/crowbar/client/filter/subset_spec.rb +77 -0
- data/spec/crowbar/client/formatter/array_spec.rb +102 -0
- data/spec/crowbar/client/formatter/hash_spec.rb +108 -0
- data/spec/crowbar/client/formatter/nested_spec.rb +106 -0
- data/spec/crowbar/client/request/barclamp/list_spec.rb +50 -0
- data/spec/crowbar/client/request/batch/build_spec.rb +64 -0
- data/spec/crowbar/client/request/batch/export_spec.rb +64 -0
- data/spec/crowbar/client/request/host_ip/allocate_spec.rb +61 -0
- data/spec/crowbar/client/request/host_ip/deallocate_spec.rb +57 -0
- data/spec/crowbar/client/request/interface/disable_spec.rb +57 -0
- data/spec/crowbar/client/request/interface/enable_spec.rb +57 -0
- data/spec/crowbar/client/request/node/action_spec.rb +53 -0
- data/spec/crowbar/client/request/node/delete_spec.rb +52 -0
- data/spec/crowbar/client/request/node/list_spec.rb +50 -0
- data/spec/crowbar/client/request/node/rename_spec.rb +55 -0
- data/spec/crowbar/client/request/node/role_spec.rb +55 -0
- data/spec/crowbar/client/request/node/show_spec.rb +52 -0
- data/spec/crowbar/client/request/node/status_spec.rb +50 -0
- data/spec/crowbar/client/request/node/transition_spec.rb +56 -0
- data/spec/crowbar/client/request/party_spec.rb +24 -0
- data/spec/crowbar/client/request/proposal/commit_spec.rb +53 -0
- data/spec/crowbar/client/request/proposal/create_spec.rb +56 -0
- data/spec/crowbar/client/request/proposal/delete_spec.rb +53 -0
- data/spec/crowbar/client/request/proposal/dequeue_spec.rb +53 -0
- data/spec/crowbar/client/request/proposal/edit_spec.rb +56 -0
- data/spec/crowbar/client/request/proposal/list_spec.rb +52 -0
- data/spec/crowbar/client/request/proposal/show_spec.rb +53 -0
- data/spec/crowbar/client/request/proposal/template_spec.rb +52 -0
- data/spec/crowbar/client/request/repository/activate_all_spec.rb +50 -0
- data/spec/crowbar/client/request/repository/activate_spec.rb +56 -0
- data/spec/crowbar/client/request/repository/deactivate_all_spec.rb +50 -0
- data/spec/crowbar/client/request/repository/deactivate_spec.rb +56 -0
- data/spec/crowbar/client/request/repository/list_spec.rb +50 -0
- data/spec/crowbar/client/request/reset/nodes_spec.rb +55 -0
- data/spec/crowbar/client/request/reset/proposal_spec.rb +55 -0
- data/spec/crowbar/client/request/role/list_spec.rb +52 -0
- data/spec/crowbar/client/request/role/show_spec.rb +53 -0
- data/spec/crowbar/client/request/virtual_ip/allocate_spec.rb +61 -0
- data/spec/crowbar/client/request/virtual_ip/deallocate_spec.rb +57 -0
- data/spec/crowbar/client/util/editor_spec.rb +108 -0
- data/spec/crowbar/client/util/runner_spec.rb +24 -0
- data/spec/crowbar/client_spec.rb +21 -0
- data/spec/spec_helper.rb +55 -0
- data/spec/support/command_context.rb +37 -0
- data/spec/support/request_examples.rb +55 -0
- metadata +549 -0
|
@@ -0,0 +1,140 @@
|
|
|
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 Role < Base
|
|
21
|
+
desc "list BARCLAMP",
|
|
22
|
+
"List available roles for barclamp"
|
|
23
|
+
|
|
24
|
+
long_desc <<-LONGDESC
|
|
25
|
+
`list BARCLAMP` will print out a list of the available roles
|
|
26
|
+
for the specified barclamp. You can display the list in
|
|
27
|
+
different output formats and you can filter the list by any
|
|
28
|
+
search criteria.
|
|
29
|
+
|
|
30
|
+
With --format <format> option you can choose an output format
|
|
31
|
+
with the available options table, json or plain. You can also
|
|
32
|
+
use the shortcut options --table, --json or --plain.
|
|
33
|
+
|
|
34
|
+
With --filter <filter> option you can limit the result of
|
|
35
|
+
printed out elements. You can use any substring that is part
|
|
36
|
+
of the found elements.
|
|
37
|
+
LONGDESC
|
|
38
|
+
|
|
39
|
+
method_option :format,
|
|
40
|
+
type: :string,
|
|
41
|
+
default: "table",
|
|
42
|
+
banner: "<format>",
|
|
43
|
+
desc: "Format of the output, valid formats are table, json or plain"
|
|
44
|
+
|
|
45
|
+
class_option :table,
|
|
46
|
+
type: :boolean,
|
|
47
|
+
default: false,
|
|
48
|
+
aliases: [],
|
|
49
|
+
desc: "Format output as table, a shortcut for --format table option"
|
|
50
|
+
|
|
51
|
+
class_option :json,
|
|
52
|
+
type: :boolean,
|
|
53
|
+
default: false,
|
|
54
|
+
aliases: [],
|
|
55
|
+
desc: "Format output as table, a shortcut for --format json option"
|
|
56
|
+
|
|
57
|
+
class_option :plain,
|
|
58
|
+
type: :boolean,
|
|
59
|
+
default: false,
|
|
60
|
+
aliases: [],
|
|
61
|
+
desc: "Format output as table, a shortcut for --format plain option"
|
|
62
|
+
|
|
63
|
+
method_option :filter,
|
|
64
|
+
type: :string,
|
|
65
|
+
default: nil,
|
|
66
|
+
banner: "<filter>",
|
|
67
|
+
desc: "Filter by criteria, display only data that contains filter"
|
|
68
|
+
|
|
69
|
+
def list(barclamp)
|
|
70
|
+
Command::Role::List.new(
|
|
71
|
+
*command_params(
|
|
72
|
+
barclamp: barclamp
|
|
73
|
+
)
|
|
74
|
+
).execute
|
|
75
|
+
rescue SimpleCatchableError => e
|
|
76
|
+
err e.message, 1
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
desc "show BARCLAMP ROLE",
|
|
80
|
+
"Show details of a specific role"
|
|
81
|
+
|
|
82
|
+
long_desc <<-LONGDESC
|
|
83
|
+
`show BARCLAMP ROLE` will print out the details for a specified
|
|
84
|
+
role for the specified barclamp. You can display the details in
|
|
85
|
+
different output formats and you can filter the details by any
|
|
86
|
+
search criteria.
|
|
87
|
+
|
|
88
|
+
With --format <format> option you can choose an output format
|
|
89
|
+
with the available options table, json or plain. You can also
|
|
90
|
+
use the shortcut options --table, --json or --plain.
|
|
91
|
+
|
|
92
|
+
With --filter <filter> option you can limit the result of
|
|
93
|
+
printed out rows. You can use any substring that is part of
|
|
94
|
+
the found rows.
|
|
95
|
+
LONGDESC
|
|
96
|
+
|
|
97
|
+
method_option :format,
|
|
98
|
+
type: :string,
|
|
99
|
+
default: "table",
|
|
100
|
+
banner: "<format>",
|
|
101
|
+
desc: "Format of the output, valid formats are table, json or plain"
|
|
102
|
+
|
|
103
|
+
class_option :table,
|
|
104
|
+
type: :boolean,
|
|
105
|
+
default: false,
|
|
106
|
+
aliases: [],
|
|
107
|
+
desc: "Format output as table, a shortcut for --format table option"
|
|
108
|
+
|
|
109
|
+
class_option :json,
|
|
110
|
+
type: :boolean,
|
|
111
|
+
default: false,
|
|
112
|
+
aliases: [],
|
|
113
|
+
desc: "Format output as table, a shortcut for --format json option"
|
|
114
|
+
|
|
115
|
+
class_option :plain,
|
|
116
|
+
type: :boolean,
|
|
117
|
+
default: false,
|
|
118
|
+
aliases: [],
|
|
119
|
+
desc: "Format output as table, a shortcut for --format plain option"
|
|
120
|
+
|
|
121
|
+
method_option :filter,
|
|
122
|
+
type: :string,
|
|
123
|
+
default: nil,
|
|
124
|
+
banner: "<filter>",
|
|
125
|
+
desc: "Filter by criteria, display only data that contains filter"
|
|
126
|
+
|
|
127
|
+
def show(barclamp, role)
|
|
128
|
+
Command::Role::Show.new(
|
|
129
|
+
*command_params(
|
|
130
|
+
barclamp: barclamp,
|
|
131
|
+
role: role
|
|
132
|
+
)
|
|
133
|
+
).execute
|
|
134
|
+
rescue SimpleCatchableError => e
|
|
135
|
+
err e.message, 1
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
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 VirtualIP < Base
|
|
21
|
+
desc "allocate PROPOSAL SERVICE NETWORK RANGE [SUGGESTION]",
|
|
22
|
+
"Allocate a virtual IP address"
|
|
23
|
+
|
|
24
|
+
long_desc <<-LONGDESC
|
|
25
|
+
`allocate PROPOSAL SERVICE NETWORK RANGE [SUGGESTION]` will
|
|
26
|
+
try to allocate a virtual IP address for the specified service.
|
|
27
|
+
LONGDESC
|
|
28
|
+
|
|
29
|
+
def allocate(proposal, service, network, range, suggestion = nil)
|
|
30
|
+
Command::VirtualIP::Allocate.new(
|
|
31
|
+
*command_params(
|
|
32
|
+
proposal: proposal,
|
|
33
|
+
service: service,
|
|
34
|
+
network: network,
|
|
35
|
+
range: range,
|
|
36
|
+
suggestion: suggestion
|
|
37
|
+
)
|
|
38
|
+
).execute
|
|
39
|
+
rescue SimpleCatchableError => e
|
|
40
|
+
err e.message, 1
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
desc "deallocate PROPOSAL SERVICE NETWORK",
|
|
44
|
+
"Deallocate a virtual IP address"
|
|
45
|
+
|
|
46
|
+
long_desc <<-LONGDESC
|
|
47
|
+
`deallocate PROPOSAL SERVICE NETWORK` will try to deallocate
|
|
48
|
+
a virtual IP address for the specified service.
|
|
49
|
+
LONGDESC
|
|
50
|
+
|
|
51
|
+
def deallocate(proposal, service, network)
|
|
52
|
+
Command::VirtualIP::Allocate.new(
|
|
53
|
+
*command_params(
|
|
54
|
+
proposal: proposal,
|
|
55
|
+
service: service,
|
|
56
|
+
network: network
|
|
57
|
+
)
|
|
58
|
+
).execute
|
|
59
|
+
rescue SimpleCatchableError => e
|
|
60
|
+
err e.message, 1
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
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 Command
|
|
20
|
+
autoload :Barclamp,
|
|
21
|
+
File.expand_path("../command/barclamp", __FILE__)
|
|
22
|
+
|
|
23
|
+
autoload :Base,
|
|
24
|
+
File.expand_path("../command/base", __FILE__)
|
|
25
|
+
|
|
26
|
+
autoload :Batch,
|
|
27
|
+
File.expand_path("../command/batch", __FILE__)
|
|
28
|
+
|
|
29
|
+
autoload :HostIP,
|
|
30
|
+
File.expand_path("../command/host_ip", __FILE__)
|
|
31
|
+
|
|
32
|
+
autoload :Interface,
|
|
33
|
+
File.expand_path("../command/interface", __FILE__)
|
|
34
|
+
|
|
35
|
+
autoload :Node,
|
|
36
|
+
File.expand_path("../command/node", __FILE__)
|
|
37
|
+
|
|
38
|
+
autoload :Proposal,
|
|
39
|
+
File.expand_path("../command/proposal", __FILE__)
|
|
40
|
+
|
|
41
|
+
autoload :Repository,
|
|
42
|
+
File.expand_path("../command/repository", __FILE__)
|
|
43
|
+
|
|
44
|
+
autoload :Reset,
|
|
45
|
+
File.expand_path("../command/reset", __FILE__)
|
|
46
|
+
|
|
47
|
+
autoload :Role,
|
|
48
|
+
File.expand_path("../command/role", __FILE__)
|
|
49
|
+
|
|
50
|
+
autoload :VirtualIP,
|
|
51
|
+
File.expand_path("../command/virtual_ip", __FILE__)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
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 Command
|
|
20
|
+
module Barclamp
|
|
21
|
+
autoload :List,
|
|
22
|
+
File.expand_path("../barclamp/list", __FILE__)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
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 Command
|
|
20
|
+
module Barclamp
|
|
21
|
+
class List < Base
|
|
22
|
+
include Mixin::Format
|
|
23
|
+
include Mixin::Filter
|
|
24
|
+
|
|
25
|
+
def request
|
|
26
|
+
@request ||= Request::Barclamp::List.new(
|
|
27
|
+
args
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def execute
|
|
32
|
+
request.process do |request|
|
|
33
|
+
case request.code
|
|
34
|
+
when 200
|
|
35
|
+
formatter = Formatter::Array.new(
|
|
36
|
+
format: provide_format,
|
|
37
|
+
headings: ["Barclamp"],
|
|
38
|
+
values: Filter::Array.new(
|
|
39
|
+
filter: provide_filter,
|
|
40
|
+
values: content_from(request)
|
|
41
|
+
).result
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
if formatter.empty?
|
|
45
|
+
err "No barclamps"
|
|
46
|
+
else
|
|
47
|
+
say formatter.result
|
|
48
|
+
end
|
|
49
|
+
else
|
|
50
|
+
err request.parsed_response["error"]
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
protected
|
|
56
|
+
|
|
57
|
+
def content_from(request)
|
|
58
|
+
request.parsed_response.keys.sort
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
require "hashie"
|
|
18
|
+
|
|
19
|
+
module Crowbar
|
|
20
|
+
module Client
|
|
21
|
+
module Command
|
|
22
|
+
class Base
|
|
23
|
+
attr_accessor :stdin
|
|
24
|
+
attr_accessor :stdout
|
|
25
|
+
attr_accessor :stderr
|
|
26
|
+
attr_accessor :options
|
|
27
|
+
attr_accessor :args
|
|
28
|
+
|
|
29
|
+
def initialize(stdin, stdout, stderr, options = {}, args = {})
|
|
30
|
+
self.stdin = stdin
|
|
31
|
+
self.stdout = stdout
|
|
32
|
+
self.stderr = stderr
|
|
33
|
+
|
|
34
|
+
self.options = Hashie::Mash.new(
|
|
35
|
+
options
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
self.args = Hashie::Mash.new(
|
|
39
|
+
args
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
protected
|
|
44
|
+
|
|
45
|
+
def say(message)
|
|
46
|
+
stdout.puts message
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def err(message)
|
|
50
|
+
raise SimpleCatchableError, message
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
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 Command
|
|
20
|
+
module Batch
|
|
21
|
+
autoload :Build,
|
|
22
|
+
File.expand_path("../batch/build", __FILE__)
|
|
23
|
+
|
|
24
|
+
autoload :Export,
|
|
25
|
+
File.expand_path("../batch/export", __FILE__)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
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 Command
|
|
20
|
+
module Batch
|
|
21
|
+
class Build < Base
|
|
22
|
+
def request
|
|
23
|
+
@request ||= Request::Batch::Build.new(
|
|
24
|
+
args
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def execute
|
|
29
|
+
request.process do |request|
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|