crowbar-client 2.4.1 → 2.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +18 -6
  4. data/lib/crowbar/client.rb +54 -0
  5. data/lib/crowbar/client/app.rb +3 -0
  6. data/lib/crowbar/client/app/backup.rb +62 -1
  7. data/lib/crowbar/client/app/barclamp.rb +10 -0
  8. data/lib/crowbar/client/app/base.rb +50 -0
  9. data/lib/crowbar/client/app/batch.rb +25 -0
  10. data/lib/crowbar/client/app/entry.rb +26 -1
  11. data/lib/crowbar/client/app/host_ip.rb +24 -0
  12. data/lib/crowbar/client/app/installer.rb +16 -1
  13. data/lib/crowbar/client/app/interface.rb +21 -0
  14. data/lib/crowbar/client/app/network.rb +3 -0
  15. data/lib/crowbar/client/app/node.rb +3 -0
  16. data/lib/crowbar/client/app/proposal.rb +3 -0
  17. data/lib/crowbar/client/app/repository.rb +3 -0
  18. data/lib/crowbar/client/app/role.rb +3 -0
  19. data/lib/crowbar/client/app/server.rb +56 -0
  20. data/lib/crowbar/client/app/virtual_ip.rb +24 -0
  21. data/lib/crowbar/client/command.rb +3 -0
  22. data/lib/crowbar/client/command/backup.rb +3 -0
  23. data/lib/crowbar/client/command/backup/create.rb +3 -0
  24. data/lib/crowbar/client/command/backup/delete.rb +3 -0
  25. data/lib/crowbar/client/command/backup/download.rb +3 -0
  26. data/lib/crowbar/client/command/backup/list.rb +3 -0
  27. data/lib/crowbar/client/command/backup/restore.rb +3 -0
  28. data/lib/crowbar/client/command/backup/upload.rb +3 -0
  29. data/lib/crowbar/client/command/barclamp.rb +3 -0
  30. data/lib/crowbar/client/command/barclamp/list.rb +3 -0
  31. data/lib/crowbar/client/command/base.rb +3 -0
  32. data/lib/crowbar/client/command/batch.rb +3 -0
  33. data/lib/crowbar/client/command/batch/build.rb +3 -0
  34. data/lib/crowbar/client/command/batch/export.rb +3 -0
  35. data/lib/crowbar/client/command/host_ip.rb +3 -0
  36. data/lib/crowbar/client/command/host_ip/allocate.rb +3 -0
  37. data/lib/crowbar/client/command/host_ip/deallocate.rb +3 -0
  38. data/lib/crowbar/client/command/installer.rb +3 -0
  39. data/lib/crowbar/client/command/installer/start.rb +3 -0
  40. data/lib/crowbar/client/command/installer/status.rb +3 -0
  41. data/lib/crowbar/client/command/interface.rb +3 -0
  42. data/lib/crowbar/client/command/interface/disable.rb +3 -0
  43. data/lib/crowbar/client/command/interface/enable.rb +3 -0
  44. data/lib/crowbar/client/command/node.rb +3 -0
  45. data/lib/crowbar/client/command/node/allocate.rb +4 -1
  46. data/lib/crowbar/client/command/node/delete.rb +3 -0
  47. data/lib/crowbar/client/command/node/group.rb +3 -0
  48. data/lib/crowbar/client/command/node/hardware.rb +4 -1
  49. data/lib/crowbar/client/command/node/identify.rb +4 -1
  50. data/lib/crowbar/client/command/node/list.rb +3 -0
  51. data/lib/crowbar/client/command/node/powercycle.rb +4 -1
  52. data/lib/crowbar/client/command/node/poweroff.rb +4 -1
  53. data/lib/crowbar/client/command/node/poweron.rb +4 -1
  54. data/lib/crowbar/client/command/node/reboot.rb +4 -1
  55. data/lib/crowbar/client/command/node/reinstall.rb +4 -1
  56. data/lib/crowbar/client/command/node/rename.rb +3 -0
  57. data/lib/crowbar/client/command/node/reset.rb +4 -1
  58. data/lib/crowbar/client/command/node/role.rb +3 -0
  59. data/lib/crowbar/client/command/node/show.rb +3 -0
  60. data/lib/crowbar/client/command/node/shutdown.rb +4 -1
  61. data/lib/crowbar/client/command/node/status.rb +3 -0
  62. data/lib/crowbar/client/command/node/transition.rb +3 -0
  63. data/lib/crowbar/client/command/proposal.rb +3 -0
  64. data/lib/crowbar/client/command/proposal/commit.rb +3 -0
  65. data/lib/crowbar/client/command/proposal/create.rb +3 -0
  66. data/lib/crowbar/client/command/proposal/delete.rb +3 -0
  67. data/lib/crowbar/client/command/proposal/dequeue.rb +3 -0
  68. data/lib/crowbar/client/command/proposal/edit.rb +3 -0
  69. data/lib/crowbar/client/command/proposal/list.rb +3 -0
  70. data/lib/crowbar/client/command/proposal/reset.rb +3 -0
  71. data/lib/crowbar/client/command/proposal/show.rb +3 -0
  72. data/lib/crowbar/client/command/repository.rb +3 -0
  73. data/lib/crowbar/client/command/repository/activate.rb +3 -0
  74. data/lib/crowbar/client/command/repository/activate_all.rb +3 -0
  75. data/lib/crowbar/client/command/repository/deactivate.rb +3 -0
  76. data/lib/crowbar/client/command/repository/deactivate_all.rb +3 -0
  77. data/lib/crowbar/client/command/repository/list.rb +3 -0
  78. data/lib/crowbar/client/command/role.rb +3 -0
  79. data/lib/crowbar/client/command/role/list.rb +3 -0
  80. data/lib/crowbar/client/command/role/show.rb +3 -0
  81. data/lib/crowbar/client/command/server.rb +5 -0
  82. data/lib/crowbar/client/command/server/api.rb +3 -0
  83. data/lib/crowbar/client/command/server/check.rb +75 -0
  84. data/lib/crowbar/client/command/virtual_ip.rb +3 -0
  85. data/lib/crowbar/client/command/virtual_ip/allocate.rb +3 -0
  86. data/lib/crowbar/client/command/virtual_ip/deallocate.rb +3 -0
  87. data/lib/crowbar/client/config.rb +128 -1
  88. data/lib/crowbar/client/filter.rb +3 -0
  89. data/lib/crowbar/client/filter/array.rb +3 -0
  90. data/lib/crowbar/client/filter/base.rb +3 -0
  91. data/lib/crowbar/client/filter/hash.rb +3 -0
  92. data/lib/crowbar/client/filter/subset.rb +3 -0
  93. data/lib/crowbar/client/formatter.rb +3 -0
  94. data/lib/crowbar/client/formatter/array.rb +3 -0
  95. data/lib/crowbar/client/formatter/base.rb +3 -0
  96. data/lib/crowbar/client/formatter/hash.rb +3 -0
  97. data/lib/crowbar/client/formatter/nested.rb +3 -0
  98. data/lib/crowbar/client/mixin.rb +3 -0
  99. data/lib/crowbar/client/mixin/barclamp.rb +3 -0
  100. data/lib/crowbar/client/mixin/filter.rb +3 -0
  101. data/lib/crowbar/client/mixin/format.rb +3 -0
  102. data/lib/crowbar/client/request.rb +3 -0
  103. data/lib/crowbar/client/request/backup.rb +3 -0
  104. data/lib/crowbar/client/request/backup/create.rb +18 -0
  105. data/lib/crowbar/client/request/backup/delete.rb +13 -0
  106. data/lib/crowbar/client/request/backup/download.rb +13 -0
  107. data/lib/crowbar/client/request/backup/list.rb +13 -0
  108. data/lib/crowbar/client/request/backup/restore.rb +13 -0
  109. data/lib/crowbar/client/request/backup/upload.rb +13 -0
  110. data/lib/crowbar/client/request/barclamp.rb +3 -0
  111. data/lib/crowbar/client/request/barclamp/list.rb +13 -0
  112. data/lib/crowbar/client/request/base.rb +42 -11
  113. data/lib/crowbar/client/request/batch.rb +3 -0
  114. data/lib/crowbar/client/request/batch/build.rb +13 -0
  115. data/lib/crowbar/client/request/batch/export.rb +18 -0
  116. data/lib/crowbar/client/request/host_ip.rb +3 -0
  117. data/lib/crowbar/client/request/host_ip/allocate.rb +18 -0
  118. data/lib/crowbar/client/request/host_ip/deallocate.rb +18 -0
  119. data/lib/crowbar/client/request/installer.rb +3 -0
  120. data/lib/crowbar/client/request/installer/start.rb +18 -0
  121. data/lib/crowbar/client/request/installer/status.rb +13 -0
  122. data/lib/crowbar/client/request/interface.rb +3 -0
  123. data/lib/crowbar/client/request/interface/disable.rb +18 -0
  124. data/lib/crowbar/client/request/interface/enable.rb +18 -0
  125. data/lib/crowbar/client/request/node.rb +33 -0
  126. data/lib/crowbar/client/request/node/action.rb +13 -0
  127. data/lib/crowbar/client/request/node/allocate.rb +29 -0
  128. data/lib/crowbar/client/request/node/delete.rb +13 -0
  129. data/lib/crowbar/client/request/node/group.rb +13 -0
  130. data/lib/crowbar/client/request/node/hardware.rb +29 -0
  131. data/lib/crowbar/client/request/node/identify.rb +29 -0
  132. data/lib/crowbar/client/request/node/list.rb +13 -0
  133. data/lib/crowbar/client/request/node/powercycle.rb +29 -0
  134. data/lib/crowbar/client/request/node/poweroff.rb +29 -0
  135. data/lib/crowbar/client/request/node/poweron.rb +29 -0
  136. data/lib/crowbar/client/request/node/reboot.rb +29 -0
  137. data/lib/crowbar/client/request/node/reinstall.rb +29 -0
  138. data/lib/crowbar/client/request/node/rename.rb +18 -0
  139. data/lib/crowbar/client/request/node/reset.rb +29 -0
  140. data/lib/crowbar/client/request/node/role.rb +18 -0
  141. data/lib/crowbar/client/request/node/show.rb +13 -0
  142. data/lib/crowbar/client/request/node/shutdown.rb +29 -0
  143. data/lib/crowbar/client/request/node/status.rb +13 -0
  144. data/lib/crowbar/client/request/node/transition.rb +18 -0
  145. data/lib/crowbar/client/request/party.rb +3 -0
  146. data/lib/crowbar/client/request/proposal.rb +3 -0
  147. data/lib/crowbar/client/request/proposal/commit.rb +13 -0
  148. data/lib/crowbar/client/request/proposal/create.rb +18 -0
  149. data/lib/crowbar/client/request/proposal/delete.rb +13 -0
  150. data/lib/crowbar/client/request/proposal/dequeue.rb +13 -0
  151. data/lib/crowbar/client/request/proposal/edit.rb +18 -0
  152. data/lib/crowbar/client/request/proposal/list.rb +13 -0
  153. data/lib/crowbar/client/request/proposal/reset.rb +13 -0
  154. data/lib/crowbar/client/request/proposal/show.rb +13 -0
  155. data/lib/crowbar/client/request/proposal/template.rb +13 -0
  156. data/lib/crowbar/client/request/repository.rb +3 -0
  157. data/lib/crowbar/client/request/repository/activate.rb +18 -0
  158. data/lib/crowbar/client/request/repository/activate_all.rb +13 -0
  159. data/lib/crowbar/client/request/repository/deactivate.rb +18 -0
  160. data/lib/crowbar/client/request/repository/deactivate_all.rb +13 -0
  161. data/lib/crowbar/client/request/repository/list.rb +13 -0
  162. data/lib/crowbar/client/request/role.rb +3 -0
  163. data/lib/crowbar/client/request/role/list.rb +13 -0
  164. data/lib/crowbar/client/request/role/show.rb +13 -0
  165. data/lib/crowbar/client/request/server.rb +5 -0
  166. data/lib/crowbar/client/request/server/api.rb +13 -0
  167. data/lib/crowbar/client/request/server/check.rb +49 -0
  168. data/lib/crowbar/client/request/virtual_ip.rb +3 -0
  169. data/lib/crowbar/client/request/virtual_ip/allocate.rb +18 -0
  170. data/lib/crowbar/client/request/virtual_ip/deallocate.rb +18 -0
  171. data/lib/crowbar/client/util.rb +3 -0
  172. data/lib/crowbar/client/util/editor.rb +3 -0
  173. data/lib/crowbar/client/util/runner.rb +3 -0
  174. data/lib/crowbar/client/version.rb +23 -1
  175. data/spec/crowbar/client/command/backup/create_spec.rb +8 -16
  176. data/spec/crowbar/client/command/backup/delete_spec.rb +8 -16
  177. data/spec/crowbar/client/command/backup/download_spec.rb +8 -16
  178. data/spec/crowbar/client/command/backup/list_spec.rb +7 -15
  179. data/spec/crowbar/client/command/backup/restore_spec.rb +8 -16
  180. data/spec/crowbar/client/command/backup/upload_spec.rb +11 -19
  181. data/spec/crowbar/client/command/barclamp/list_spec.rb +7 -15
  182. data/spec/crowbar/client/command/batch/build_spec.rb +11 -19
  183. data/spec/crowbar/client/command/batch/export_spec.rb +7 -15
  184. data/spec/crowbar/client/command/host_ip/allocate_spec.rb +7 -15
  185. data/spec/crowbar/client/command/host_ip/deallocate_spec.rb +7 -15
  186. data/spec/crowbar/client/command/installer/start_spec.rb +8 -16
  187. data/spec/crowbar/client/command/installer/status_spec.rb +7 -15
  188. data/spec/crowbar/client/command/interface/disable_spec.rb +7 -15
  189. data/spec/crowbar/client/command/interface/enable_spec.rb +7 -15
  190. data/spec/crowbar/client/command/node/allocate_spec.rb +7 -15
  191. data/spec/crowbar/client/command/node/delete_spec.rb +7 -15
  192. data/spec/crowbar/client/command/node/group_spec.rb +7 -15
  193. data/spec/crowbar/client/command/node/hardware_spec.rb +7 -15
  194. data/spec/crowbar/client/command/node/identify_spec.rb +7 -15
  195. data/spec/crowbar/client/command/node/list_spec.rb +9 -17
  196. data/spec/crowbar/client/command/node/powercycle_spec.rb +7 -15
  197. data/spec/crowbar/client/command/node/poweroff_spec.rb +7 -15
  198. data/spec/crowbar/client/command/node/poweron_spec.rb +7 -15
  199. data/spec/crowbar/client/command/node/reboot_spec.rb +7 -15
  200. data/spec/crowbar/client/command/node/reinstall_spec.rb +7 -15
  201. data/spec/crowbar/client/command/node/rename_spec.rb +7 -15
  202. data/spec/crowbar/client/command/node/reset_spec.rb +7 -15
  203. data/spec/crowbar/client/command/node/role_spec.rb +7 -15
  204. data/spec/crowbar/client/command/node/show_spec.rb +7 -15
  205. data/spec/crowbar/client/command/node/shutdown_spec.rb +7 -15
  206. data/spec/crowbar/client/command/node/status_spec.rb +7 -15
  207. data/spec/crowbar/client/command/node/transition_spec.rb +7 -15
  208. data/spec/crowbar/client/command/proposal/commit_spec.rb +7 -15
  209. data/spec/crowbar/client/command/proposal/delete_spec.rb +7 -15
  210. data/spec/crowbar/client/command/proposal/dequeue_spec.rb +7 -15
  211. data/spec/crowbar/client/command/proposal/list_spec.rb +7 -15
  212. data/spec/crowbar/client/command/proposal/reset_spec.rb +7 -15
  213. data/spec/crowbar/client/command/proposal/show_spec.rb +7 -15
  214. data/spec/crowbar/client/command/repository/activate_all_spec.rb +7 -15
  215. data/spec/crowbar/client/command/repository/activate_spec.rb +7 -15
  216. data/spec/crowbar/client/command/repository/deactivate_all_spec.rb +7 -15
  217. data/spec/crowbar/client/command/repository/deactivate_spec.rb +7 -15
  218. data/spec/crowbar/client/command/repository/list_spec.rb +7 -15
  219. data/spec/crowbar/client/command/role/list_spec.rb +7 -15
  220. data/spec/crowbar/client/command/role/show_spec.rb +7 -15
  221. data/spec/crowbar/client/command/server/api_spec.rb +7 -15
  222. data/spec/crowbar/client/command/server/check_spec.rb +31 -0
  223. data/spec/crowbar/client/command/virtual_ip/allocate_spec.rb +7 -15
  224. data/spec/crowbar/client/command/virtual_ip/deallocate_spec.rb +7 -15
  225. data/spec/crowbar/client/request/server/check_spec.rb +50 -0
  226. data/spec/support/command_examples.rb +59 -0
  227. metadata +117 -95
@@ -17,12 +17,22 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI entry point which resolves the sub-commands
22
+ #
20
23
  class Entry < Base
24
+ check_unknown_options!
25
+
21
26
  map [
22
27
  "--version",
23
28
  "-v"
24
29
  ] => :version
25
30
 
31
+ map [
32
+ "--help",
33
+ "-h"
34
+ ] => :help
35
+
26
36
  class_option :alias,
27
37
  type: :string,
28
38
  default: Config.defaults[:alias],
@@ -56,7 +66,7 @@ module Crowbar
56
66
  class_option :anonymous,
57
67
  type: :boolean,
58
68
  default: Config.defaults[:anonymous],
59
- aliases: ["-a"],
69
+ aliases: ["-A"],
60
70
  desc: "Skip API user authentication"
61
71
 
62
72
  class_option :debug,
@@ -65,6 +75,18 @@ module Crowbar
65
75
  aliases: ["-d"],
66
76
  desc: "Output more debug information"
67
77
 
78
+ # TODO(should): Prevent a --no-help alternative flag
79
+ # class_option :help,
80
+ # type: :boolean,
81
+ # aliases: ["-h"],
82
+ # desc: "Print this help information"
83
+
84
+ # TODO(should): Prevent a --no-version alternative flag
85
+ # class_option :version,
86
+ # type: :boolean,
87
+ # aliases: ["-v"],
88
+ # desc: "Print the current version of the CLI"
89
+
68
90
  desc "version",
69
91
  "Display the current version of the client"
70
92
 
@@ -74,6 +96,9 @@ module Crowbar
74
96
  to debug some issue with the current implementation.
75
97
  LONGDESC
76
98
 
99
+ #
100
+ # Command to print the version of Crowbar CLI
101
+ #
77
102
  def version
78
103
  say "crowbar-client v#{Crowbar::Client::Version}"
79
104
  end
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for host IP commands
22
+ #
20
23
  class HostIP < Base
21
24
  namespace "network hostip"
22
25
 
@@ -28,6 +31,18 @@ module Crowbar
28
31
  try to allocate a host IP address for the specified node.
29
32
  LONGDESC
30
33
 
34
+ #
35
+ # Host IP allocate command
36
+ #
37
+ # It will try to allocate a host IP address for the specified
38
+ # node.
39
+ #
40
+ # @param proposal [String] the proposal name
41
+ # @param node [String] the node name or alias
42
+ # @param network [String] the network name
43
+ # @param range [String] the network range
44
+ # @param suggestion [String] an optional suggestion
45
+ #
31
46
  def allocate(proposal, node, network, range, suggestion = nil)
32
47
  Command::HostIP::Allocate.new(
33
48
  *command_params(
@@ -50,6 +65,15 @@ module Crowbar
50
65
  a host IP address for the specified node.
51
66
  LONGDESC
52
67
 
68
+ #
69
+ # Host IP deallocate command
70
+ #
71
+ # It will try to deallocate a host IP address.
72
+ #
73
+ # @param proposal [String] the proposal name
74
+ # @param node [String] the node name or alias
75
+ # @param network [String] the network name
76
+ #
53
77
  def deallocate(proposal, node, network)
54
78
  Command::HostIP::Deallocate.new(
55
79
  *command_params(
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for installer commands
22
+ #
20
23
  class Installer < Base
21
24
  desc "status",
22
25
  "Show current installer status"
@@ -65,6 +68,13 @@ module Crowbar
65
68
  banner: "<filter>",
66
69
  desc: "Filter by criteria, display only data that contains filter"
67
70
 
71
+ #
72
+ # Installer status command
73
+ #
74
+ # It will print out information about the current status of the
75
+ # installer. You can display the list in different output formats
76
+ # and you can filter the list by any search criteria.
77
+ #
68
78
  def status
69
79
  Command::Installer::Status.new(
70
80
  *command_params
@@ -77,7 +87,7 @@ module Crowbar
77
87
  "Start the insallation of Crowbar"
78
88
 
79
89
  long_desc <<-LONGDESC
80
- `start` will trigger the installation of the Administration Server.
90
+ `start` will trigger the installation of the server.
81
91
 
82
92
  With --force you can enforce a reinstallation if the installation
83
93
  has already been finished. Be careful with that option as you will
@@ -90,6 +100,11 @@ module Crowbar
90
100
  aliases: [],
91
101
  desc: "Force Administration Server installation"
92
102
 
103
+ #
104
+ # Installer start command
105
+ #
106
+ # It will trigger the installation of the server.
107
+ #
93
108
  def start
94
109
  Command::Installer::Start.new(
95
110
  *command_params
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for interface commands
22
+ #
20
23
  class Interface < Base
21
24
  namespace "network interface"
22
25
 
@@ -28,6 +31,15 @@ module Crowbar
28
31
  specified network interface on the specified node.
29
32
  LONGDESC
30
33
 
34
+ #
35
+ # Interface enable command
36
+ #
37
+ # Enable a network interface.
38
+ #
39
+ # @param proposal [String] the proposal name
40
+ # @param node [String] the node name or alias
41
+ # @param network [String] the network name
42
+ #
31
43
  def enable(proposal, node, network)
32
44
  Command::Interface::Enable.new(
33
45
  *command_params(
@@ -48,6 +60,15 @@ module Crowbar
48
60
  specified network interface on the specified node.
49
61
  LONGDESC
50
62
 
63
+ #
64
+ # Interface disable command
65
+ #
66
+ # Disable a network interface.
67
+ #
68
+ # @param proposal [String] the proposal name
69
+ # @param node [String] the node name or alias
70
+ # @param network [String] the network name
71
+ #
51
72
  def disable(proposal, node, network)
52
73
  Command::Interface::Disable.new(
53
74
  *command_params(
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for network commands
22
+ #
20
23
  class Network < Base
21
24
  desc "virtualip [COMMANDS]",
22
25
  "Actions for virtual IP addresses, call without params for help"
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for node commands
22
+ #
20
23
  class Node < Base
21
24
  desc "status",
22
25
  "Show current nodes status"
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for proposal commands
22
+ #
20
23
  class Proposal < Base
21
24
  desc "list BARCLAMP",
22
25
  "Show a list of available proposals"
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for repository commands
22
+ #
20
23
  class Repository < Base
21
24
  desc "list",
22
25
  "List all available repositories"
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for role commands
22
+ #
20
23
  class Role < Base
21
24
  desc "list BARCLAMP",
22
25
  "List available roles for barclamp"
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for server commands
22
+ #
20
23
  class Server < Base
21
24
  desc "api BARCLAMP",
22
25
  "Show the API documentation"
@@ -35,6 +38,59 @@ module Crowbar
35
38
  rescue => e
36
39
  catch_errors(e)
37
40
  end
41
+
42
+ desc "check",
43
+ "Perform sanity checks on the server"
44
+
45
+ long_desc <<-LONGDESC
46
+ `check` will perform sanity checks on the server.
47
+
48
+ With --format <format> option you can choose an output format
49
+ with the available options table, json or plain. You can also
50
+ use the shortcut options --table, --json or --plain.
51
+
52
+ With --filter <filter> option you can limit the result of
53
+ printed out elements. You can use any substring that is part
54
+ of the found elements.
55
+ LONGDESC
56
+
57
+ method_option :format,
58
+ type: :string,
59
+ default: "table",
60
+ banner: "<format>",
61
+ desc: "Format of the output, valid formats are table, json or plain"
62
+
63
+ method_option :table,
64
+ type: :boolean,
65
+ default: false,
66
+ aliases: [],
67
+ desc: "Format output as table, a shortcut for --format table option"
68
+
69
+ method_option :json,
70
+ type: :boolean,
71
+ default: false,
72
+ aliases: [],
73
+ desc: "Format output as table, a shortcut for --format json option"
74
+
75
+ method_option :plain,
76
+ type: :boolean,
77
+ default: false,
78
+ aliases: [],
79
+ desc: "Format output as table, a shortcut for --format plain option"
80
+
81
+ method_option :filter,
82
+ type: :string,
83
+ default: nil,
84
+ banner: "<filter>",
85
+ desc: "Filter by criteria, display only data that contains filter"
86
+
87
+ def check
88
+ Command::Server::Check.new(
89
+ *command_params
90
+ ).execute
91
+ rescue => e
92
+ catch_errors(e)
93
+ end
38
94
  end
39
95
  end
40
96
  end
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module App
20
+ #
21
+ # A Thor based CLI wrapper for virtual IP commands
22
+ #
20
23
  class VirtualIP < Base
21
24
  namespace "network virtualip"
22
25
 
@@ -28,6 +31,18 @@ module Crowbar
28
31
  try to allocate a virtual IP address for the specified service.
29
32
  LONGDESC
30
33
 
34
+ #
35
+ # Virtual IP allocate command
36
+ #
37
+ # It will try to allocate a virtual IP address for the specified
38
+ # service.
39
+ #
40
+ # @param proposal [String] the proposal name
41
+ # @param service [String] the service name
42
+ # @param network [String] the network name
43
+ # @param range [String] the network range
44
+ # @param suggestion [String] an optional suggestion
45
+ #
31
46
  def allocate(proposal, service, network, range, suggestion = nil)
32
47
  Command::VirtualIP::Allocate.new(
33
48
  *command_params(
@@ -50,6 +65,15 @@ module Crowbar
50
65
  a virtual IP address for the specified service.
51
66
  LONGDESC
52
67
 
68
+ #
69
+ # Virtual IP deallocate command
70
+ #
71
+ # It will try to deallocate a virtual IP address.
72
+ #
73
+ # @param proposal [String] the proposal name
74
+ # @param service [String] the service name
75
+ # @param network [String] the network name
76
+ #
53
77
  def deallocate(proposal, service, network)
54
78
  Command::VirtualIP::Deallocate.new(
55
79
  *command_params(
@@ -16,6 +16,9 @@
16
16
 
17
17
  module Crowbar
18
18
  module Client
19
+ #
20
+ # Module for the command implementations
21
+ #
19
22
  module Command
20
23
  autoload :Backup,
21
24
  File.expand_path("../command/backup", __FILE__)
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Command
20
+ #
21
+ # Module for the backup command implementations
22
+ #
20
23
  module Backup
21
24
  autoload :Create,
22
25
  File.expand_path("../backup/create", __FILE__)
@@ -18,6 +18,9 @@ module Crowbar
18
18
  module Client
19
19
  module Command
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup create command
23
+ #
21
24
  class Create < Base
22
25
  def request
23
26
  @request ||= Request::Backup::Create.new(
@@ -18,6 +18,9 @@ module Crowbar
18
18
  module Client
19
19
  module Command
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup delete command
23
+ #
21
24
  class Delete < Base
22
25
  def request
23
26
  @request ||= Request::Backup::Delete.new(
@@ -18,6 +18,9 @@ module Crowbar
18
18
  module Client
19
19
  module Command
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup download command
23
+ #
21
24
  class Download < Base
22
25
  def request
23
26
  @request ||= Request::Backup::Download.new(
@@ -18,6 +18,9 @@ module Crowbar
18
18
  module Client
19
19
  module Command
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup list command
23
+ #
21
24
  class List < Base
22
25
  include Mixin::Format
23
26
  include Mixin::Filter
@@ -18,6 +18,9 @@ module Crowbar
18
18
  module Client
19
19
  module Command
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup restore command
23
+ #
21
24
  class Restore < Base
22
25
  def request
23
26
  @request ||= Request::Backup::Restore.new(
@@ -17,6 +17,9 @@ module Crowbar
17
17
  module Client
18
18
  module Command
19
19
  module Backup
20
+ #
21
+ # Implementation for the backup upload command
22
+ #
20
23
  class Upload < Base
21
24
  def request
22
25
  args.file =
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Command
20
+ #
21
+ # Module for the barclamp command implementations
22
+ #
20
23
  module Barclamp
21
24
  autoload :List,
22
25
  File.expand_path("../barclamp/list", __FILE__)