crowbar-client 2.4.1 → 2.4.2

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