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
@@ -16,6 +16,9 @@
16
16
 
17
17
  module Crowbar
18
18
  module Client
19
+ #
20
+ # Module for the available filter functionalities
21
+ #
19
22
  module Filter
20
23
  autoload :Array,
21
24
  File.expand_path("../filter/array", __FILE__)
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Filter
20
+ #
21
+ # Filter to reduce an array by a given search clause
22
+ #
20
23
  class Array < Base
21
24
  def process
22
25
  options[:values].select do |row|
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Filter
20
+ #
21
+ # Base that provides methods shared between different filters
22
+ #
20
23
  class Base
21
24
  attr_accessor :options
22
25
 
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Filter
20
+ #
21
+ # Filter to reduce a hash by a given search clause
22
+ #
20
23
  class Hash < Base
21
24
  def process
22
25
  options[:values].select do |row|
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Filter
20
+ #
21
+ # Filter to reduce a hash subset by a given search clause
22
+ #
20
23
  class Subset < Base
21
24
  def process
22
25
  options[:filter].to_s.split(".").each do |segment|
@@ -16,6 +16,9 @@
16
16
 
17
17
  module Crowbar
18
18
  module Client
19
+ #
20
+ # Module for the available formatter functionalities
21
+ #
19
22
  module Formatter
20
23
  autoload :Array,
21
24
  File.expand_path("../formatter/array", __FILE__)
@@ -20,6 +20,9 @@ require "json"
20
20
  module Crowbar
21
21
  module Client
22
22
  module Formatter
23
+ #
24
+ # Formatter to properly print out arrays in different formats
25
+ #
23
26
  class Array < Base
24
27
  def empty?
25
28
  options[:values].empty?
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Formatter
20
+ #
21
+ # Base that provides methods shared between different formatters
22
+ #
20
23
  class Base
21
24
  attr_accessor :options
22
25
 
@@ -20,6 +20,9 @@ require "json"
20
20
  module Crowbar
21
21
  module Client
22
22
  module Formatter
23
+ #
24
+ # Formatter to properly print out hashes in different formats
25
+ #
23
26
  class Hash < Base
24
27
  def empty?
25
28
  options[:values].empty?
@@ -20,6 +20,9 @@ require "json"
20
20
  module Crowbar
21
21
  module Client
22
22
  module Formatter
23
+ #
24
+ # Formatter to properly print out keys and values in different formats
25
+ #
23
26
  class Nested < Base
24
27
  def empty?
25
28
  options[:values].blank?
@@ -16,6 +16,9 @@
16
16
 
17
17
  module Crowbar
18
18
  module Client
19
+ #
20
+ # Module for the available mixin functionalities
21
+ #
19
22
  module Mixin
20
23
  autoload :Barclamp,
21
24
  File.expand_path("../mixin/barclamp", __FILE__)
@@ -19,6 +19,9 @@ require "active_support/concern"
19
19
  module Crowbar
20
20
  module Client
21
21
  module Mixin
22
+ #
23
+ # A mixin with barclamp related helpers
24
+ #
22
25
  module Barclamp
23
26
  extend ActiveSupport::Concern
24
27
 
@@ -19,6 +19,9 @@ require "active_support/concern"
19
19
  module Crowbar
20
20
  module Client
21
21
  module Mixin
22
+ #
23
+ # A mixin with filter related helpers
24
+ #
22
25
  module Filter
23
26
  extend ActiveSupport::Concern
24
27
 
@@ -19,6 +19,9 @@ require "active_support/concern"
19
19
  module Crowbar
20
20
  module Client
21
21
  module Mixin
22
+ #
23
+ # A mixin with formatter related helpers
24
+ #
22
25
  module Format
23
26
  extend ActiveSupport::Concern
24
27
 
@@ -16,6 +16,9 @@
16
16
 
17
17
  module Crowbar
18
18
  module Client
19
+ #
20
+ # Module for the available request implementations
21
+ #
19
22
  module Request
20
23
  autoload :Backup,
21
24
  File.expand_path("../request/backup", __FILE__)
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Request
20
+ #
21
+ # Module for the backup request implementations
22
+ #
20
23
  module Backup
21
24
  autoload :Create,
22
25
  File.expand_path("../backup/create", __FILE__)
@@ -20,17 +20,35 @@ module Crowbar
20
20
  module Client
21
21
  module Request
22
22
  module Backup
23
+ #
24
+ # Implementation for the backup create request
25
+ #
23
26
  class Create < Base
27
+ #
28
+ # Override the request content
29
+ #
30
+ # @return [Hash] the content for the request
31
+ #
24
32
  def content
25
33
  super.easy_merge!(
26
34
  name: attrs.name
27
35
  )
28
36
  end
29
37
 
38
+ #
39
+ # HTTP method that gets used by the request
40
+ #
41
+ # @return [Symbol] the method for the request
42
+ #
30
43
  def method
31
44
  :post
32
45
  end
33
46
 
47
+ #
48
+ # Path to the API endpoint for the request
49
+ #
50
+ # @return [String] path to the API endpoint
51
+ #
34
52
  def url
35
53
  [
36
54
  "utils",
@@ -18,11 +18,24 @@ module Crowbar
18
18
  module Client
19
19
  module Request
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup delete request
23
+ #
21
24
  class Delete < Base
25
+ #
26
+ # HTTP method that gets used by the request
27
+ #
28
+ # @return [Symbol] the method for the request
29
+ #
22
30
  def method
23
31
  :delete
24
32
  end
25
33
 
34
+ #
35
+ # Path to the API endpoint for the request
36
+ #
37
+ # @return [String] path to the API endpoint
38
+ #
26
39
  def url
27
40
  [
28
41
  "utils",
@@ -20,6 +20,9 @@ module Crowbar
20
20
  module Client
21
21
  module Request
22
22
  module Backup
23
+ #
24
+ # Implementation for the backup download request
25
+ #
23
26
  class Download < Base
24
27
  def headers
25
28
  super.easy_merge!(
@@ -28,10 +31,20 @@ module Crowbar
28
31
  )
29
32
  end
30
33
 
34
+ #
35
+ # HTTP method that gets used by the request
36
+ #
37
+ # @return [Symbol] the method for the request
38
+ #
31
39
  def method
32
40
  :get
33
41
  end
34
42
 
43
+ #
44
+ # Path to the API endpoint for the request
45
+ #
46
+ # @return [String] path to the API endpoint
47
+ #
35
48
  def url
36
49
  [
37
50
  "utils",
@@ -18,11 +18,24 @@ module Crowbar
18
18
  module Client
19
19
  module Request
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup list request
23
+ #
21
24
  class List < Base
25
+ #
26
+ # HTTP method that gets used by the request
27
+ #
28
+ # @return [Symbol] the method for the request
29
+ #
22
30
  def method
23
31
  :get
24
32
  end
25
33
 
34
+ #
35
+ # Path to the API endpoint for the request
36
+ #
37
+ # @return [String] path to the API endpoint
38
+ #
26
39
  def url
27
40
  [
28
41
  "utils",
@@ -18,11 +18,24 @@ module Crowbar
18
18
  module Client
19
19
  module Request
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup restore request
23
+ #
21
24
  class Restore < Base
25
+ #
26
+ # HTTP method that gets used by the request
27
+ #
28
+ # @return [Symbol] the method for the request
29
+ #
22
30
  def method
23
31
  :post
24
32
  end
25
33
 
34
+ #
35
+ # Path to the API endpoint for the request
36
+ #
37
+ # @return [String] path to the API endpoint
38
+ #
26
39
  def url
27
40
  [
28
41
  "utils",
@@ -18,6 +18,9 @@ module Crowbar
18
18
  module Client
19
19
  module Request
20
20
  module Backup
21
+ #
22
+ # Implementation for the backup upload request
23
+ #
21
24
  class Upload < Base
22
25
  def params
23
26
  {
@@ -28,10 +31,20 @@ module Crowbar
28
31
  }
29
32
  end
30
33
 
34
+ #
35
+ # HTTP method that gets used by the request
36
+ #
37
+ # @return [Symbol] the method for the request
38
+ #
31
39
  def method
32
40
  :post
33
41
  end
34
42
 
43
+ #
44
+ # Path to the API endpoint for the request
45
+ #
46
+ # @return [String] path to the API endpoint
47
+ #
35
48
  def url
36
49
  [
37
50
  "utils",
@@ -17,6 +17,9 @@
17
17
  module Crowbar
18
18
  module Client
19
19
  module Request
20
+ #
21
+ # Module for the barclamp request implementations
22
+ #
20
23
  module Barclamp
21
24
  autoload :List,
22
25
  File.expand_path("../barclamp/list", __FILE__)
@@ -18,11 +18,24 @@ module Crowbar
18
18
  module Client
19
19
  module Request
20
20
  module Barclamp
21
+ #
22
+ # Implementation for the barclamp list request
23
+ #
21
24
  class List < Base
25
+ #
26
+ # HTTP method that gets used by the request
27
+ #
28
+ # @return [Symbol] the method for the request
29
+ #
22
30
  def method
23
31
  :get
24
32
  end
25
33
 
34
+ #
35
+ # Path to the API endpoint for the request
36
+ #
37
+ # @return [String] path to the API endpoint
38
+ #
26
39
  def url
27
40
  [
28
41
  "crowbar"
@@ -19,6 +19,9 @@ require "hashie"
19
19
  module Crowbar
20
20
  module Client
21
21
  module Request
22
+ #
23
+ # Base that provides methods shared between request implementations
24
+ #
22
25
  class Base
23
26
  attr_accessor :request
24
27
  attr_accessor :attrs
@@ -59,17 +62,9 @@ module Crowbar
59
62
  params
60
63
  )
61
64
 
62
- case result.code
63
- when 500
64
- raise InternalServerError,
65
- "An internal error occured"
66
- when 401
67
- raise NotAuthorizedError,
68
- "User is not authorized"
69
- when 403
70
- raise NotAuthorizedError,
71
- "User access is forbidden"
72
- end
65
+ send(
66
+ errors[result.code]
67
+ ) if errors[result.code]
73
68
 
74
69
  if block_given?
75
70
  yield result
@@ -77,6 +72,42 @@ module Crowbar
77
72
  result
78
73
  end
79
74
  end
75
+
76
+ def errors
77
+ {
78
+ 401 => :not_authorized,
79
+ 403 => :not_authorized,
80
+ 500 => :internal_server,
81
+ 502 => :bad_gateway,
82
+ 503 => :service_unavailable,
83
+ 504 => :gateway_timeout
84
+ }
85
+ end
86
+
87
+ def not_authorized
88
+ raise NotAuthorizedError,
89
+ "User is not authorized"
90
+ end
91
+
92
+ def internal_server
93
+ raise InternalServerError,
94
+ "An internal error occured"
95
+ end
96
+
97
+ def bad_gateway
98
+ raise BadGatewayError,
99
+ "Received a bad gateway error"
100
+ end
101
+
102
+ def service_unavailable
103
+ raise ServiceUnavailableError,
104
+ "Service is not available"
105
+ end
106
+
107
+ def gateway_timeout
108
+ raise GatewayTimeoutError,
109
+ "Received a gateway timeout"
110
+ end
80
111
  end
81
112
  end
82
113
  end