deltacloud-core 1.1.2 → 1.1.3

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 (279) hide show
  1. data/deltacloud-core.gemspec +4 -7
  2. data/lib/cimi/collections/address_templates.rb +4 -42
  3. data/lib/cimi/collections/addresses.rb +5 -43
  4. data/lib/cimi/collections/base.rb +11 -3
  5. data/lib/cimi/collections/cloud_entry_point.rb +1 -1
  6. data/lib/cimi/collections/credentials.rb +4 -43
  7. data/lib/cimi/collections/forwarding_group_templates.rb +2 -20
  8. data/lib/cimi/collections/forwarding_groups.rb +2 -21
  9. data/lib/cimi/collections/machine_configurations.rb +2 -20
  10. data/lib/cimi/collections/machine_images.rb +4 -42
  11. data/lib/cimi/collections/machine_templates.rb +4 -42
  12. data/lib/cimi/collections/machines.rb +14 -64
  13. data/lib/cimi/collections/network_configurations.rb +2 -20
  14. data/lib/cimi/collections/network_port_configurations.rb +2 -21
  15. data/lib/cimi/collections/network_port_templates.rb +2 -23
  16. data/lib/cimi/collections/network_ports.rb +6 -46
  17. data/lib/cimi/collections/network_templates.rb +2 -21
  18. data/lib/cimi/collections/networks.rb +4 -40
  19. data/lib/cimi/collections/resource_metadata.rb +2 -21
  20. data/lib/cimi/collections/system_templates.rb +4 -45
  21. data/lib/cimi/collections/systems.rb +65 -82
  22. data/lib/cimi/collections/volume_configurations.rb +4 -45
  23. data/lib/cimi/collections/volume_images.rb +4 -42
  24. data/lib/cimi/collections/volume_templates.rb +5 -44
  25. data/lib/cimi/collections/volumes.rb +4 -48
  26. data/lib/cimi/helpers.rb +1 -0
  27. data/lib/cimi/helpers/cimi_helper.rb +1 -1
  28. data/lib/cimi/helpers/cimi_rabbit_helper.rb +113 -0
  29. data/lib/cimi/helpers/database_helper.rb +1 -2
  30. data/lib/cimi/models.rb +12 -11
  31. data/lib/cimi/models/action.rb +0 -4
  32. data/lib/cimi/models/address.rb +0 -38
  33. data/lib/cimi/models/address_create.rb +0 -31
  34. data/lib/cimi/models/address_template.rb +0 -47
  35. data/lib/cimi/models/address_template_create.rb +0 -16
  36. data/lib/cimi/models/base.rb +2 -74
  37. data/lib/cimi/models/cloud_entry_point.rb +2 -30
  38. data/lib/cimi/models/collection.rb +8 -25
  39. data/lib/cimi/models/credential.rb +0 -34
  40. data/lib/cimi/models/credential_create.rb +0 -26
  41. data/lib/cimi/models/credential_template.rb +0 -2
  42. data/lib/cimi/models/disk.rb +0 -56
  43. data/lib/cimi/models/forwarding_group.rb +0 -8
  44. data/lib/cimi/models/forwarding_group_template.rb +0 -8
  45. data/lib/cimi/models/machine.rb +4 -129
  46. data/lib/cimi/models/machine_configuration.rb +0 -31
  47. data/lib/cimi/models/machine_create.rb +1 -29
  48. data/lib/cimi/models/machine_image.rb +0 -28
  49. data/lib/cimi/models/machine_image_create.rb +0 -19
  50. data/lib/cimi/models/machine_template.rb +5 -39
  51. data/lib/cimi/models/machine_template_create.rb +0 -12
  52. data/lib/cimi/models/machine_volume.rb +0 -65
  53. data/lib/cimi/models/network.rb +0 -32
  54. data/lib/cimi/models/network_configuration.rb +0 -15
  55. data/lib/cimi/models/network_create.rb +0 -23
  56. data/lib/cimi/models/network_port.rb +0 -73
  57. data/lib/cimi/models/network_port_configuration.rb +0 -8
  58. data/lib/cimi/models/network_port_template.rb +0 -8
  59. data/lib/cimi/models/network_template.rb +2 -12
  60. data/lib/cimi/models/resource.rb +0 -6
  61. data/lib/cimi/models/resource_metadata.rb +1 -95
  62. data/lib/cimi/models/schema.rb +28 -32
  63. data/lib/cimi/models/system.rb +15 -39
  64. data/lib/cimi/models/system_address.rb +26 -0
  65. data/lib/cimi/models/system_create.rb +20 -0
  66. data/lib/cimi/models/system_credential.rb +26 -0
  67. data/lib/cimi/models/system_forwarding_group.rb +26 -0
  68. data/lib/cimi/models/system_machine.rb +26 -0
  69. data/lib/cimi/models/system_network.rb +26 -0
  70. data/lib/cimi/models/system_network_port.rb +26 -0
  71. data/lib/cimi/models/system_system.rb +26 -0
  72. data/lib/cimi/models/system_template.rb +15 -31
  73. data/lib/cimi/models/system_volume.rb +26 -0
  74. data/lib/cimi/models/volume.rb +0 -59
  75. data/lib/cimi/models/volume_configuration.rb +1 -64
  76. data/lib/cimi/models/volume_configuration_create.rb +22 -0
  77. data/lib/cimi/models/volume_create.rb +0 -38
  78. data/lib/cimi/models/volume_image.rb +0 -30
  79. data/lib/cimi/models/volume_image_create.rb +0 -25
  80. data/lib/cimi/models/volume_template.rb +2 -43
  81. data/lib/cimi/models/volume_template_create.rb +0 -12
  82. data/lib/cimi/service.rb +82 -0
  83. data/lib/cimi/service/action.rb +21 -0
  84. data/lib/cimi/service/address.rb +56 -0
  85. data/lib/cimi/service/address_create.rb +45 -0
  86. data/lib/cimi/service/address_template.rb +71 -0
  87. data/lib/cimi/service/address_template_create.rb +34 -0
  88. data/lib/cimi/service/base.rb +266 -0
  89. data/lib/cimi/service/cloud_entry_point.rb +53 -0
  90. data/lib/cimi/service/credential.rb +52 -0
  91. data/lib/cimi/service/credential_create.rb +38 -0
  92. data/lib/cimi/service/credential_template.rb +20 -0
  93. data/lib/cimi/service/disk.rb +75 -0
  94. data/lib/cimi/service/forwarding_group.rb +26 -0
  95. data/lib/cimi/service/forwarding_group_template.rb +26 -0
  96. data/lib/cimi/service/machine.rb +154 -0
  97. data/lib/cimi/service/machine_configuration.rb +54 -0
  98. data/lib/cimi/service/machine_create.rb +49 -0
  99. data/lib/cimi/service/machine_image.rb +47 -0
  100. data/lib/cimi/service/machine_image_create.rb +35 -0
  101. data/lib/cimi/service/machine_template.rb +61 -0
  102. data/lib/cimi/service/machine_template_create.rb +29 -0
  103. data/lib/cimi/service/machine_volume.rb +74 -0
  104. data/lib/cimi/service/network.rb +51 -0
  105. data/lib/cimi/service/network_configuration.rb +36 -0
  106. data/lib/cimi/service/network_create.rb +39 -0
  107. data/lib/cimi/service/network_port.rb +97 -0
  108. data/lib/cimi/service/network_port_configuration.rb +26 -0
  109. data/lib/cimi/service/network_port_template.rb +26 -0
  110. data/lib/cimi/service/network_template.rb +28 -0
  111. data/lib/cimi/service/resource_metadata.rb +44 -0
  112. data/lib/cimi/service/system.rb +45 -0
  113. data/lib/cimi/service/system_address.rb +34 -0
  114. data/lib/cimi/service/system_create.rb +39 -0
  115. data/lib/cimi/service/system_credential.rb +34 -0
  116. data/lib/cimi/service/system_forwarding_group.rb +34 -0
  117. data/lib/cimi/service/system_machine.rb +34 -0
  118. data/lib/cimi/service/system_network.rb +34 -0
  119. data/lib/cimi/service/system_network_port.rb +34 -0
  120. data/lib/cimi/service/system_system.rb +34 -0
  121. data/lib/cimi/service/system_template.rb +32 -0
  122. data/lib/cimi/service/system_volume.rb +34 -0
  123. data/lib/cimi/service/volume.rb +81 -0
  124. data/lib/cimi/service/volume_configuration.rb +92 -0
  125. data/lib/cimi/service/volume_configuration_create.rb +29 -0
  126. data/lib/cimi/service/volume_create.rb +47 -0
  127. data/lib/cimi/service/volume_image.rb +44 -0
  128. data/lib/cimi/service/volume_image_create.rb +42 -0
  129. data/lib/cimi/service/volume_template.rb +61 -0
  130. data/lib/cimi/service/volume_template_create.rb +29 -0
  131. data/lib/db/entity.rb +16 -1
  132. data/lib/deltacloud/collections/addresses.rb +2 -2
  133. data/lib/deltacloud/collections/buckets.rb +16 -18
  134. data/lib/deltacloud/collections/drivers.rb +4 -4
  135. data/lib/deltacloud/collections/firewalls.rb +5 -5
  136. data/lib/deltacloud/collections/images.rb +3 -3
  137. data/lib/deltacloud/collections/instance_states.rb +4 -4
  138. data/lib/deltacloud/collections/instances.rb +22 -13
  139. data/lib/deltacloud/collections/keys.rb +2 -2
  140. data/lib/deltacloud/collections/load_balancers.rb +16 -13
  141. data/lib/deltacloud/collections/storage_snapshots.rb +3 -3
  142. data/lib/deltacloud/collections/storage_volumes.rb +5 -5
  143. data/lib/deltacloud/core_ext/ordered_hash.rb +0 -4
  144. data/lib/deltacloud/drivers/fgcp/fgcp_client.rb +8 -0
  145. data/lib/deltacloud/drivers/fgcp/fgcp_driver.rb +4 -3
  146. data/lib/deltacloud/drivers/fgcp/fgcp_driver_cimi_methods.rb +266 -19
  147. data/lib/deltacloud/drivers/google/google_driver.rb +6 -0
  148. data/lib/deltacloud/drivers/mock/mock_driver.rb +2 -2
  149. data/lib/deltacloud/drivers/mock/mock_driver_cimi_methods.rb +166 -54
  150. data/lib/deltacloud/drivers/rhevm/rhevm_driver.rb +2 -0
  151. data/lib/deltacloud/helpers/blob_stream_helper.rb +0 -2
  152. data/lib/deltacloud/helpers/deltacloud_helper.rb +22 -22
  153. data/lib/deltacloud/helpers/driver_helper.rb +4 -7
  154. data/lib/deltacloud/helpers/rabbit_helper.rb +5 -0
  155. data/lib/deltacloud/server.rb +4 -4
  156. data/lib/deltacloud/version.rb +1 -1
  157. data/lib/deltacloud_rack.rb +6 -1
  158. data/lib/ec2/server.rb +6 -1
  159. data/tests/cimi/collections/common.rb +33 -0
  160. data/tests/cimi/collections/machines_test.rb +19 -0
  161. data/tests/cimi/collections/system_templates_test.rb +47 -0
  162. data/tests/cimi/collections/volumes_test.rb +42 -0
  163. data/tests/cimi/db/database_helper_test.rb +7 -4
  164. data/tests/deltacloud/drivers_test.rb +1 -1
  165. data/tests/drivers/ec2/common.rb +4 -1
  166. data/tests/drivers/fgcp/common.rb +1 -2
  167. data/tests/drivers/gogrid/common.rb +1 -2
  168. data/tests/drivers/google/common.rb +1 -1
  169. data/tests/drivers/models/address_test.rb +2 -2
  170. data/tests/drivers/models/base_test.rb +2 -2
  171. data/tests/drivers/models/blob_test.rb +2 -2
  172. data/tests/drivers/models/instance_address_test.rb +8 -8
  173. data/tests/drivers/models/instance_profile_test.rb +2 -2
  174. data/tests/drivers/models/keys_test.rb +4 -4
  175. data/tests/drivers/models/metrics_test.rb +3 -3
  176. data/tests/drivers/openstack/common.rb +1 -2
  177. data/views/addresses/_address.html.haml +3 -3
  178. data/views/addresses/associate.html.haml +3 -3
  179. data/views/addresses/index.html.haml +2 -2
  180. data/views/addresses/index.xml.haml +2 -2
  181. data/views/addresses/show.html.haml +7 -7
  182. data/views/addresses/show.xml.haml +9 -9
  183. data/views/api/show.html.haml +2 -2
  184. data/views/api/show.xml.haml +1 -1
  185. data/views/blobs/new.html.haml +1 -1
  186. data/views/blobs/show.html.haml +8 -8
  187. data/views/blobs/show.xml.haml +7 -7
  188. data/views/buckets/index.html.haml +1 -1
  189. data/views/buckets/index.xml.haml +2 -2
  190. data/views/buckets/show.html.haml +7 -7
  191. data/views/buckets/show.xml.haml +6 -6
  192. data/views/drivers/index.html.haml +1 -1
  193. data/views/drivers/index.xml.haml +1 -1
  194. data/views/drivers/show.html.haml +6 -6
  195. data/views/drivers/show.xml.haml +5 -5
  196. data/views/error.html.haml +2 -2
  197. data/views/errors/backend_capability_failure.xml.haml +3 -3
  198. data/views/errors/common.html.haml +7 -7
  199. data/views/errors/common.xml.haml +5 -5
  200. data/views/firewalls/index.html.haml +1 -1
  201. data/views/firewalls/index.xml.haml +1 -1
  202. data/views/firewalls/new_rule.html.haml +1 -1
  203. data/views/firewalls/show.html.haml +8 -8
  204. data/views/firewalls/show.xml.haml +9 -9
  205. data/views/hardware_profiles/index.html.haml +1 -1
  206. data/views/hardware_profiles/index.xml.haml +2 -2
  207. data/views/hardware_profiles/show.html.haml +3 -3
  208. data/views/hardware_profiles/show.xml.haml +4 -4
  209. data/views/images/index.html.haml +1 -1
  210. data/views/images/index.xml.haml +2 -2
  211. data/views/images/new.html.haml +2 -2
  212. data/views/images/show.html.haml +14 -14
  213. data/views/images/show.xml.haml +14 -14
  214. data/views/instance_states/show.html.haml +1 -1
  215. data/views/instance_states/show.png.erb +2 -2
  216. data/views/instance_states/show.xml.haml +1 -1
  217. data/views/instances/index.html.haml +1 -1
  218. data/views/instances/index.xml.haml +2 -2
  219. data/views/instances/new.html.haml +22 -14
  220. data/views/instances/run.html.haml +2 -2
  221. data/views/instances/run.xml.haml +3 -3
  222. data/views/instances/run_command.html.haml +4 -4
  223. data/views/instances/show.html.haml +27 -27
  224. data/views/instances/show.xml.haml +37 -37
  225. data/views/keys/index.html.haml +1 -1
  226. data/views/keys/index.xml.haml +2 -2
  227. data/views/keys/show.html.haml +10 -10
  228. data/views/keys/show.xml.haml +12 -12
  229. data/views/load_balancers/index.html.haml +1 -1
  230. data/views/load_balancers/index.xml.haml +2 -2
  231. data/views/load_balancers/new.html.haml +1 -8
  232. data/views/load_balancers/show.html.haml +10 -10
  233. data/views/load_balancers/show.xml.haml +9 -9
  234. data/views/metrics/index.html.haml +1 -1
  235. data/views/metrics/index.xml.haml +2 -2
  236. data/views/metrics/show.html.haml +2 -2
  237. data/views/metrics/show.xml.haml +3 -3
  238. data/views/realms/index.html.haml +1 -1
  239. data/views/realms/index.xml.haml +2 -2
  240. data/views/realms/show.html.haml +6 -6
  241. data/views/realms/show.xml.haml +5 -5
  242. data/views/storage_snapshots/index.html.haml +1 -1
  243. data/views/storage_snapshots/index.xml.haml +2 -2
  244. data/views/storage_snapshots/show.html.haml +6 -6
  245. data/views/storage_snapshots/show.xml.haml +4 -4
  246. data/views/storage_volumes/attach.html.haml +2 -2
  247. data/views/storage_volumes/index.html.haml +1 -1
  248. data/views/storage_volumes/index.xml.haml +2 -2
  249. data/views/storage_volumes/show.html.haml +19 -19
  250. data/views/storage_volumes/show.xml.haml +21 -21
  251. metadata +77 -65
  252. data/views/cimi/cloudEntryPoint/index.html.haml +0 -5
  253. data/views/cimi/cloudEntryPoint/index.xml.haml +0 -9
  254. data/views/cimi/collection/index.html.haml +0 -45
  255. data/views/cimi/collection/response.xml.haml +0 -3
  256. data/views/cimi/error.html.haml +0 -31
  257. data/views/cimi/errors/400.xml.haml +0 -3
  258. data/views/cimi/errors/401.xml.haml +0 -2
  259. data/views/cimi/errors/403.xml.haml +0 -2
  260. data/views/cimi/errors/404.xml.haml +0 -2
  261. data/views/cimi/errors/405.xml.haml +0 -5
  262. data/views/cimi/errors/500.xml.haml +0 -6
  263. data/views/cimi/errors/502.xml.haml +0 -7
  264. data/views/cimi/layout.html.haml +0 -32
  265. data/views/cimi/machine_configurations/show.html.haml +0 -159
  266. data/views/cimi/machine_configurations/show.xml.haml +0 -27
  267. data/views/cimi/machine_images/show.html.haml +0 -79
  268. data/views/cimi/machine_images/show.xml.haml +0 -17
  269. data/views/cimi/machines/show.html.haml +0 -177
  270. data/views/cimi/machines/show.xml.haml +0 -28
  271. data/views/cimi/volumes/show.html.haml +0 -68
  272. data/views/cimi/volumes/show.xml.haml +0 -17
  273. data/views/docs/collection.html.haml +0 -26
  274. data/views/docs/collection.xml.haml +0 -14
  275. data/views/docs/index.html.haml +0 -11
  276. data/views/docs/index.xml.haml +0 -5
  277. data/views/docs/operation.html.haml +0 -33
  278. data/views/docs/operation.xml.haml +0 -10
  279. data/views/root/index.html.haml +0 -4
@@ -45,6 +45,7 @@ Gem::Specification.new do |s|
45
45
  'support/fedora/**',
46
46
  'support/condor/bash/**',
47
47
  'support/condor/config/**',
48
+ 'lib/*.rb',
48
49
  'lib/**/*.rb',
49
50
  'lib/**/*.yml',
50
51
  'lib/**/*.haml',
@@ -78,11 +79,8 @@ Gem::Specification.new do |s|
78
79
  s.add_dependency('require_relative') if RUBY_VERSION < '1.9'
79
80
  s.add_dependency('sequel', '<= 3.42.0')
80
81
 
81
- # FIXME: These dependencies are locked due to bugs that
82
- # we will not address in this release.
83
- #
84
- s.add_dependency('tilt', '<=1.3.3')
85
- s.add_dependency('sinatra', '<=1.3.5')
82
+ s.add_dependency('tilt')
83
+ s.add_dependency('sinatra')
86
84
 
87
85
 
88
86
  if RUBY_PLATFORM == 'java'
@@ -95,7 +93,7 @@ Gem::Specification.new do |s|
95
93
  # dependencies for various cloud providers:
96
94
 
97
95
  # RHEV-M and oVirt
98
- s.add_dependency('rbovirt', '>=0.0.17')
96
+ s.add_dependency('rbovirt', '>=0.0.19')
99
97
 
100
98
  # Amazon EC2 S3
101
99
  s.add_dependency('aws', '>=2.7.0')
@@ -108,7 +106,6 @@ Gem::Specification.new do |s|
108
106
 
109
107
  # Terremark Vcloud Express
110
108
  s.add_dependency('fog', '>= 1.4.0')
111
- s.add_dependency('excon', '>= 0.14.2', '<0.17.0' )
112
109
 
113
110
  # Rhevm and Condor Cloud
114
111
  s.add_dependency('rest-client')
@@ -20,48 +20,10 @@ module CIMI::Collections
20
20
 
21
21
  collection :address_templates do
22
22
 
23
- operation :index do
24
- description 'List all AddressTemplates in the AddressTemplateCollection'
25
- control do
26
- address_templates = AddressTemplate.list(self).select_by(params['$select'])
27
- respond_to do |format|
28
- format.xml {address_templates.to_xml}
29
- format.json {address_templates.to_json}
30
- end
31
- end
32
- end
33
-
34
- operation :show do
35
- description 'Show a specific AddressTemplate'
36
- control do
37
- address_template = CIMI::Model::AddressTemplate.find(params[:id], self)
38
- respond_to do |format|
39
- format.xml {address_template.to_xml}
40
- format.json {address_template.to_json}
41
- end
42
- end
43
- end
44
-
45
- operation :create do
46
- description "Create new AddressTemplate"
47
- control do
48
- addr_templ = CIMI::Model::AddressTemplateCreate.parse(request.body, request.content_type)
49
- new_address_template = addr_templ.create(self)
50
- headers_for_create new_address_template
51
- respond_to do |format|
52
- format.json { new_address_template.to_json }
53
- format.xml { new_address_template.to_xml }
54
- end
55
- end
56
- end
57
-
58
- operation :destroy do
59
- description "Delete a specified AddressTemplate"
60
- control do
61
- CIMI::Model::AddressTemplate.delete!(params[:id], self)
62
- no_content_with_status(200)
63
- end
64
- end
23
+ generate_index_operation
24
+ generate_show_operation
25
+ generate_create_operation
26
+ generate_delete_operation
65
27
 
66
28
  end
67
29
 
@@ -19,53 +19,15 @@ module CIMI::Collections
19
19
  set :capability, lambda { |m| driver.respond_to? m }
20
20
 
21
21
  collection :addresses do
22
-
23
22
  description 'An Address represents an IP address, and its associated metadata, for a particular Network.'
24
23
 
25
- operation :index, :with_capability => :addresses do
26
- description 'List all Addresses in the AddressCollection'
27
- control do
28
- addresses = Address.list(self).select_by(params['$select'])
29
- respond_to do |format|
30
- format.xml {addresses.to_xml}
31
- format.json {addresses.to_json}
32
- end
33
- end
34
- end
35
-
36
- operation :show, :with_capability => :address do
37
- description 'Show a specific Address'
38
- control do
39
- address = CIMI::Model::Address.find(params[:id], self)
40
- respond_to do |format|
41
- format.xml {address.to_xml}
42
- format.json {address.to_json}
43
- end
44
- end
45
- end
46
-
47
- operation :create, :with_capability => :create_address do
48
- description "Create a new Address"
49
- control do
50
- addr = CIMI::Model::AddressCreate.parse(request.body, request.content_type)
51
- address = addr.create(self)
52
- respond_to do |format|
53
- format.xml { address.to_xml }
54
- format.json { address.to_json }
55
- end
56
- end
57
- end
58
-
59
- operation :destroy, :with_capability => :delete_address do
60
- description "Delete a specified Address"
61
- param :id, :string, :required
62
- control do
63
- CIMI::Model::Address.delete!(params[:id], self)
64
- no_content_with_status(200)
65
- end
66
- end
24
+ generate_index_operation :with_capability => :addresses
25
+ generate_show_operation :with_capability => :address
26
+ generate_delete_operation :with_capability => :destroy_address
27
+ generate_create_operation :with_capability => :create_address
67
28
 
68
29
  end
69
30
 
31
+
70
32
  end
71
33
  end
@@ -13,7 +13,7 @@
13
13
  # License for the specific language governing permissions and limitations
14
14
  # under the License.
15
15
 
16
- require_relative '../models'
16
+ require_relative '../service'
17
17
 
18
18
  module CIMI::Collections
19
19
  class Base < Sinatra::Base
@@ -22,14 +22,18 @@ module CIMI::Collections
22
22
  enable :use_namespace
23
23
  end
24
24
 
25
+ helpers Sinatra::Rabbit::URLHelper
26
+
27
+ Sinatra::Rabbit::Collection.extend(CIMI::RabbitHelper)
28
+
25
29
  include Sinatra::Rabbit
26
30
  include Sinatra::Rabbit::Features
27
- include CIMI::Model
31
+ include CIMI::Service
28
32
 
29
33
  helpers Deltacloud::Helpers::Drivers
30
34
  helpers Deltacloud::Helpers::Database
31
35
  helpers Sinatra::AuthHelper
32
- helpers Sinatra::Rabbit::URLHelper
36
+
33
37
  helpers Deltacloud::Helpers::Application
34
38
  helpers CIMI::Helper
35
39
 
@@ -61,6 +65,10 @@ module CIMI::Collections
61
65
  report_error
62
66
  end
63
67
 
68
+ error CIMI::Model::NotFound do
69
+ report_error(404, 'Not found')
70
+ end
71
+
64
72
  error JSON::ParserError do
65
73
  report_error(400, "Bad request (#{request.env['sinatra.error'].message})")
66
74
  end
@@ -28,7 +28,7 @@ module CIMI::Collections
28
28
  if params[:force_auth]
29
29
  halt 401 unless driver.valid_credentials?(credentials)
30
30
  end
31
- entry_point = CIMI::Model::CloudEntryPoint.create(self)
31
+ entry_point = CIMI::Service::CloudEntryPoint.create(self)
32
32
  respond_to do |format|
33
33
  format.xml { entry_point.to_xml }
34
34
  format.json { entry_point.to_json }
@@ -21,49 +21,10 @@ module CIMI::Collections
21
21
  collection :credentials do
22
22
  description 'Machine Admin entity'
23
23
 
24
- operation :index, :with_capability => :keys do
25
- description "List all machine admins"
26
- control do
27
- credentials = Credential.list(self).select_by(params['$select'])
28
- respond_to do |format|
29
- format.xml { credentials.to_xml }
30
- format.json { credentials.to_json }
31
- end
32
- end
33
- end
34
-
35
- operation :show, :with_capability => :key do
36
- description "Show specific machine admin"
37
- control do
38
- credential = Credential.find(params[:id], self)
39
- respond_to do |format|
40
- format.xml { credential.to_xml }
41
- format.json { credential.to_json }
42
- end
43
- end
44
- end
45
-
46
- operation :create, :with_capability => :create_key do
47
- description "Show specific machine admin"
48
- control do
49
- c = CIMI::Model::CredentialCreate.parse(request.body, request.content_type)
50
- new_admin = c.create(self)
51
- headers_for_create new_admin
52
- respond_to do |format|
53
- format.json { new_admin.to_json }
54
- format.xml { new_admin.to_xml }
55
- end
56
- end
57
- end
58
-
59
- operation :delete, :with_capability => :destroy_key do
60
- description "Delete specified Credential entity"
61
- control do
62
- Credential.delete!(params[:id], self)
63
- no_content_with_status(200)
64
- end
65
- end
66
-
24
+ generate_show_operation :with_capability => :keys
25
+ generate_index_operation :with_capability => :keys
26
+ generate_create_operation :with_capability => :create_key
27
+ generate_delete_operation :with_capability => :delete_key
67
28
  end
68
29
 
69
30
  end
@@ -19,27 +19,9 @@ module CIMI::Collections
19
19
 
20
20
  collection :forwarding_group_templates do
21
21
 
22
- operation :index, :with_capability => :forwarding_groups do
23
- description 'List all ForwardingGroupTemplates in the ForwardingGroupTemplateCollection'
24
- control do
25
- forwarding_group_templates = ForwardingGroupTemplate.list(self).select_by(params['$select'])
26
- respond_to do |format|
27
- format.xml {forwarding_group_templates.to_xml}
28
- format.json {forwarding_group_templates.to_json}
29
- end
30
- end
31
- end
22
+ generate_index_operation :with_capability => :forwarding_groups
23
+ generate_show_operation :with_capability => :forwarding_groups
32
24
 
33
- operation :show, :with_capability => :forwarding_groups do
34
- description 'Show a specific ForwardingGroupTemplate'
35
- control do
36
- forwarding_group_template = ForwardingGroupTemplate.find(params[:id], self)
37
- respond_to do |format|
38
- format.xml {forwarding_group_template.to_xml}
39
- format.json {forwarding_group_template.to_json}
40
- end
41
- end
42
- end
43
25
  end
44
26
 
45
27
  end
@@ -19,27 +19,8 @@ module CIMI::Collections
19
19
 
20
20
  collection :forwarding_groups do
21
21
 
22
- operation :index, :with_capability => :forwarding_groups do
23
- description 'List all ForwardingGroups in the ForwardingGroupsCollection'
24
- control do
25
- forwarding_groups = ForwardingGroup.list(self).select_by(params['$select'])
26
- respond_to do |format|
27
- format.xml {forwarding_groups.to_xml}
28
- format.json {forwarding_groups.to_json}
29
- end
30
- end
31
- end
32
-
33
- operation :show, :with_capability => :forwarding_groups do
34
- description 'Show a specific ForwardingGroup'
35
- control do
36
- forwarding_group = ForwardingGroup.find(params[:id], self)
37
- respond_to do |format|
38
- format.xml {forwarding_group.to_xml}
39
- format.json {forwarding_group.to_json}
40
- end
41
- end
42
- end
22
+ generate_index_operation :with_capability => :forwarding_groups
23
+ generate_show_operation :with_capability => :forwarding_groups
43
24
 
44
25
  end
45
26
 
@@ -21,27 +21,9 @@ module CIMI::Collections
21
21
  collection :machine_configurations do
22
22
  description 'List all machine configurations'
23
23
 
24
- operation :index, :with_capability => :hardware_profiles do
25
- description "List all machine configurations"
26
- control do
27
- machine_configs = MachineConfiguration.list(self).select_by(params['$select'])
28
- respond_to do |format|
29
- format.xml { machine_configs.to_xml }
30
- format.json { machine_configs.to_json }
31
- end
32
- end
33
- end
24
+ generate_show_operation :with_capability => :hardware_profile
25
+ generate_index_operation :with_capability => :hardware_profiles
34
26
 
35
- operation :show, :with_capability => :hardware_profile do
36
- control do
37
- machine_conf = MachineConfiguration.find(params[:id], self)
38
- respond_to do |format|
39
- format.xml { machine_conf.to_xml }
40
- format.json { machine_conf.to_json }
41
- end
42
- end
43
-
44
- end
45
27
  end
46
28
 
47
29
  end
@@ -21,48 +21,10 @@ module CIMI::Collections
21
21
  collection :machine_images do
22
22
  description 'List all machine images'
23
23
 
24
- operation :index, :with_capability => :images do
25
- description "List all machine configurations"
26
- control do
27
- machine_images = MachineImage.list(self).select_by(params['$select'])
28
- respond_to do |format|
29
- format.xml { machine_images.to_xml }
30
- format.json { machine_images.to_json }
31
- end
32
- end
33
- end
34
-
35
- operation :show, :with_capability => :image do
36
- description "Show specific machine image."
37
- control do
38
- machine_image = MachineImage.find(params[:id], self)
39
- respond_to do |format|
40
- format.xml { machine_image.to_xml }
41
- format.json { machine_image.to_json }
42
- end
43
- end
44
- end
45
-
46
- operation :create, :with_capability => :create_image do
47
- description "Create a new machine image."
48
- control do
49
- mi = CIMI::Model::MachineImageCreate.parse(request.body, request.content_type)
50
- machine_image = mi.create(self)
51
- headers_for_create machine_image
52
- respond_to do |format|
53
- format.xml { machine_image.to_xml }
54
- format.json { machine_image.to_json }
55
- end
56
- end
57
- end
58
-
59
- operation :destroy, :with_capability => :destroy_image do
60
- description "Delete a specified MachineImage"
61
- control do
62
- CIMI::Model::MachineImage.delete!(params[:id], self)
63
- no_content_with_status 200
64
- end
65
- end
24
+ generate_show_operation :with_capability => :image
25
+ generate_index_operation :with_capability => :images
26
+ generate_delete_operation :with_capability => :destroy_image
27
+ generate_create_operation :with_capability => :create_image
66
28
 
67
29
  end
68
30
 
@@ -20,48 +20,10 @@ module CIMI::Collections
20
20
 
21
21
  collection :machine_templates do
22
22
 
23
- operation :index do
24
- description "List all machine templates"
25
- control do
26
- machine_templates = CIMI::Model::MachineTemplate.list(self).select_by(params['$select'])
27
- respond_to do |format|
28
- format.xml { machine_templates.to_xml }
29
- format.json { machine_templates.to_json }
30
- end
31
- end
32
- end
33
-
34
- operation :show do
35
- description "Show specific machine template"
36
- control do
37
- machine_template = CIMI::Model::MachineTemplate.find(params[:id], self)
38
- respond_to do |format|
39
- format.xml { machine_template.to_xml }
40
- format.json { machine_template.to_json }
41
- end
42
- end
43
- end
44
-
45
- operation :create do
46
- description "Create new machine template"
47
- control do
48
- mt = CIMI::Model::MachineTemplateCreate.parse(request.body, request.content_type)
49
- new_machine_template = mt.create(self)
50
- headers_for_create new_machine_template
51
- respond_to do |format|
52
- format.json { new_machine_template.to_json }
53
- format.xml { new_machine_template.to_xml }
54
- end
55
- end
56
- end
57
-
58
- operation :destroy do
59
- description "Delete a specified machine template"
60
- control do
61
- CIMI::Model::MachineTemplate.delete!(params[:id], self)
62
- no_content_with_status(200)
63
- end
64
- end
23
+ generate_show_operation
24
+ generate_index_operation
25
+ generate_create_operation
26
+ generate_delete_operation
65
27
 
66
28
  end
67
29