fog 1.34.0 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +10 -24
  3. data/CHANGELOG.md +84 -0
  4. data/CONTRIBUTING.md +1 -1
  5. data/README.md +4 -20
  6. data/fog.gemspec +7 -5
  7. data/lib/fog.rb +1 -0
  8. data/lib/fog/bin.rb +1 -0
  9. data/lib/fog/digitalocean/compute_v2.rb +108 -0
  10. data/lib/fog/digitalocean/models/compute_v2/flavor.rb +17 -0
  11. data/lib/fog/digitalocean/models/compute_v2/flavors.rb +21 -0
  12. data/lib/fog/digitalocean/models/compute_v2/image.rb +25 -0
  13. data/lib/fog/digitalocean/models/compute_v2/images.rb +36 -0
  14. data/lib/fog/digitalocean/models/compute_v2/region.rb +13 -0
  15. data/lib/fog/digitalocean/models/compute_v2/regions.rb +21 -0
  16. data/lib/fog/digitalocean/models/compute_v2/server.rb +166 -0
  17. data/lib/fog/digitalocean/models/compute_v2/servers.rb +39 -0
  18. data/lib/fog/digitalocean/models/compute_v2/ssh_key.rb +30 -0
  19. data/lib/fog/digitalocean/models/compute_v2/ssh_keys.rb +35 -0
  20. data/lib/fog/digitalocean/requests/compute_v2/change_kernel.rb +44 -0
  21. data/lib/fog/digitalocean/requests/compute_v2/convert_to_snapshot.rb +44 -0
  22. data/lib/fog/digitalocean/requests/compute_v2/create_server.rb +93 -0
  23. data/lib/fog/digitalocean/requests/compute_v2/create_ssh_key.rb +47 -0
  24. data/lib/fog/digitalocean/requests/compute_v2/delete_server.rb +28 -0
  25. data/lib/fog/digitalocean/requests/compute_v2/delete_ssh_key.rb +28 -0
  26. data/lib/fog/digitalocean/requests/compute_v2/disable_backups.rb +45 -0
  27. data/lib/fog/digitalocean/requests/compute_v2/enable_ipv6.rb +44 -0
  28. data/lib/fog/digitalocean/requests/compute_v2/enable_private_networking.rb +44 -0
  29. data/lib/fog/digitalocean/requests/compute_v2/get_droplet_action.rb +36 -0
  30. data/lib/fog/digitalocean/requests/compute_v2/get_image_details.rb +43 -0
  31. data/lib/fog/digitalocean/requests/compute_v2/get_server_details.rb +84 -0
  32. data/lib/fog/digitalocean/requests/compute_v2/get_ssh_key.rb +34 -0
  33. data/lib/fog/digitalocean/requests/compute_v2/list_droplet_actions.rb +38 -0
  34. data/lib/fog/digitalocean/requests/compute_v2/list_flavors.rb +131 -0
  35. data/lib/fog/digitalocean/requests/compute_v2/list_images.rb +50 -0
  36. data/lib/fog/digitalocean/requests/compute_v2/list_regions.rb +94 -0
  37. data/lib/fog/digitalocean/requests/compute_v2/list_servers.rb +28 -0
  38. data/lib/fog/digitalocean/requests/compute_v2/list_ssh_keys.rb +26 -0
  39. data/lib/fog/digitalocean/requests/compute_v2/password_reset.rb +44 -0
  40. data/lib/fog/digitalocean/requests/compute_v2/power_cycle.rb +44 -0
  41. data/lib/fog/digitalocean/requests/compute_v2/power_off.rb +44 -0
  42. data/lib/fog/digitalocean/requests/compute_v2/power_on.rb +44 -0
  43. data/lib/fog/digitalocean/requests/compute_v2/reboot_server.rb +44 -0
  44. data/lib/fog/digitalocean/requests/compute_v2/rebuild.rb +44 -0
  45. data/lib/fog/digitalocean/requests/compute_v2/rename.rb +44 -0
  46. data/lib/fog/digitalocean/requests/compute_v2/resize.rb +48 -0
  47. data/lib/fog/digitalocean/requests/compute_v2/restore.rb +44 -0
  48. data/lib/fog/digitalocean/requests/compute_v2/shutdown.rb +44 -0
  49. data/lib/fog/digitalocean/requests/compute_v2/snapshot.rb +44 -0
  50. data/lib/fog/digitalocean/requests/compute_v2/transfer_image.rb +44 -0
  51. data/lib/fog/digitalocean/requests/compute_v2/update_ssh_key.rb +46 -0
  52. data/lib/fog/digitalocean/requests/compute_v2/upgrade.rb +44 -0
  53. data/lib/fog/digitalocean/service.rb +51 -0
  54. data/lib/fog/linode/models/compute/kernels.rb +1 -1
  55. data/lib/fog/opennebula/models/compute/flavor.rb +13 -13
  56. data/lib/fog/opennebula/requests/compute/template_pool.rb +14 -11
  57. data/lib/fog/openstack.rb +2 -0
  58. data/lib/fog/openstack/core.rb +30 -3
  59. data/lib/fog/openstack/identity.rb +8 -7
  60. data/lib/fog/openstack/identity_v3.rb +1 -0
  61. data/lib/fog/openstack/image.rb +35 -130
  62. data/lib/fog/openstack/image_v1.rb +142 -0
  63. data/lib/fog/openstack/image_v2.rb +137 -0
  64. data/lib/fog/openstack/models/image_v1/image.rb +78 -0
  65. data/lib/fog/openstack/models/image_v1/images.rb +70 -0
  66. data/lib/fog/openstack/models/image_v2/image.rb +149 -0
  67. data/lib/fog/openstack/models/image_v2/images.rb +67 -0
  68. data/lib/fog/openstack/models/orchestration/stack.rb +5 -0
  69. data/lib/fog/openstack/models/volume/volume_type.rb +25 -0
  70. data/lib/fog/openstack/orchestration.rb +1 -0
  71. data/lib/fog/openstack/requests/compute/server_actions.rb +14 -3
  72. data/lib/fog/openstack/requests/{image → image_v1}/add_member_to_image.rb +2 -0
  73. data/lib/fog/openstack/requests/image_v1/create_image.rb +78 -0
  74. data/lib/fog/openstack/requests/image_v1/delete_image.rb +25 -0
  75. data/lib/fog/openstack/requests/image_v1/get_image.rb +47 -0
  76. data/lib/fog/openstack/requests/image_v1/get_image_by_id.rb +34 -0
  77. data/lib/fog/openstack/requests/image_v1/get_image_members.rb +31 -0
  78. data/lib/fog/openstack/requests/image_v1/get_shared_images.rb +31 -0
  79. data/lib/fog/openstack/requests/image_v1/list_public_images.rb +35 -0
  80. data/lib/fog/openstack/requests/image_v1/list_public_images_detailed.rb +37 -0
  81. data/lib/fog/openstack/requests/image_v1/remove_member_from_image.rb +25 -0
  82. data/lib/fog/openstack/requests/image_v1/set_tenant.rb +21 -0
  83. data/lib/fog/openstack/requests/image_v1/update_image.rb +66 -0
  84. data/lib/fog/openstack/requests/image_v1/update_image_members.rb +39 -0
  85. data/lib/fog/openstack/requests/image_v2/add_member_to_image.rb +26 -0
  86. data/lib/fog/openstack/requests/image_v2/add_tag_to_image.rb +25 -0
  87. data/lib/fog/openstack/requests/image_v2/create_image.rb +54 -0
  88. data/lib/fog/openstack/requests/image_v2/deactivate_image.rb +25 -0
  89. data/lib/fog/openstack/requests/image_v2/delete_image.rb +25 -0
  90. data/lib/fog/openstack/requests/image_v2/download_image.rb +29 -0
  91. data/lib/fog/openstack/requests/image_v2/get_image.rb +47 -0
  92. data/lib/fog/openstack/requests/image_v2/get_image_by_id.rb +34 -0
  93. data/lib/fog/openstack/requests/image_v2/get_image_members.rb +31 -0
  94. data/lib/fog/openstack/requests/image_v2/get_member_details.rb +33 -0
  95. data/lib/fog/openstack/requests/image_v2/get_shared_images.rb +31 -0
  96. data/lib/fog/openstack/requests/image_v2/list_images.rb +35 -0
  97. data/lib/fog/openstack/requests/image_v2/reactivate_image.rb +25 -0
  98. data/lib/fog/openstack/requests/image_v2/remove_member_from_image.rb +25 -0
  99. data/lib/fog/openstack/requests/image_v2/remove_tag_from_image.rb +25 -0
  100. data/lib/fog/openstack/requests/image_v2/set_tenant.rb +21 -0
  101. data/lib/fog/openstack/requests/image_v2/update_image.rb +49 -0
  102. data/lib/fog/openstack/requests/image_v2/update_image_member.rb +34 -0
  103. data/lib/fog/openstack/requests/image_v2/upload_image.rb +30 -0
  104. data/lib/fog/openstack/requests/orchestration/patch_stack.rb +37 -0
  105. data/lib/fog/openstack/requests/volume/create_volume_type.rb +41 -0
  106. data/lib/fog/openstack/requests/{image/delete_image.rb → volume/delete_volume_type.rb} +6 -6
  107. data/lib/fog/openstack/requests/volume/get_quota_usage.rb +44 -0
  108. data/lib/fog/openstack/requests/volume/get_volume_type_details.rb +1 -1
  109. data/lib/fog/openstack/requests/volume/update_volume_type.rb +41 -0
  110. data/lib/fog/openstack/volume.rb +5 -0
  111. data/lib/fog/rackspace/models/compute_v2/server.rb +11 -1
  112. data/lib/fog/rackspace/models/compute_v2/servers.rb +2 -2
  113. data/lib/fog/rackspace/requests/compute_v2/create_server.rb +7 -2
  114. data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +13 -10
  115. data/lib/fog/version.rb +1 -1
  116. data/lib/fog/vsphere/models/compute/server.rb +1 -1
  117. data/lib/tasks/changelog_task.rb +1 -0
  118. data/spec/fog/openstack/identity_v3/authv3_a.yml +45 -52
  119. data/spec/fog/openstack/identity_v3/authv3_b.yml +45 -52
  120. data/spec/fog/openstack/identity_v3/authv3_c.yml +95 -101
  121. data/spec/fog/openstack/identity_v3/authv3_project.yml +68 -75
  122. data/spec/fog/openstack/identity_v3/authv3_token.yml +212 -174
  123. data/spec/fog/openstack/identity_v3/authv3_unscoped.yml +278 -266
  124. data/spec/fog/openstack/identity_v3/authv3_unscoped_reauth.yml +190 -202
  125. data/spec/fog/openstack/identity_v3/common_setup.yml +67 -445
  126. data/spec/fog/openstack/identity_v3/idv3_credential.yml +56 -26
  127. data/spec/fog/openstack/identity_v3/idv3_credential_crud.yml +292 -152
  128. data/spec/fog/openstack/identity_v3/idv3_domain.yml +99 -49
  129. data/spec/fog/openstack/identity_v3/idv3_domain_crud.yml +239 -119
  130. data/spec/fog/openstack/identity_v3/idv3_domain_group_roles_mutation.yml +414 -205
  131. data/spec/fog/openstack/identity_v3/idv3_domain_roles_mutation.yml +259 -136
  132. data/spec/fog/openstack/identity_v3/idv3_endpoint.yml +474 -472
  133. data/spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml +679 -626
  134. data/spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml +536 -269
  135. data/spec/fog/openstack/identity_v3/idv3_policy.yml +76 -36
  136. data/spec/fog/openstack/identity_v3/idv3_policy_crud.yml +197 -97
  137. data/spec/fog/openstack/identity_v3/idv3_project.yml +135 -85
  138. data/spec/fog/openstack/identity_v3/idv3_project_crud.yml +237 -127
  139. data/spec/fog/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml +625 -295
  140. data/spec/fog/openstack/identity_v3/idv3_project_hier_crud_list.yml +716 -355
  141. data/spec/fog/openstack/identity_v3/idv3_role.yml +134 -88
  142. data/spec/fog/openstack/identity_v3/idv3_role_crud.yml +312 -118
  143. data/spec/fog/openstack/identity_v3/idv3_service.yml +179 -133
  144. data/spec/fog/openstack/identity_v3/idv3_services_crud.yml +306 -212
  145. data/spec/fog/openstack/identity_v3/idv3_token.yml +213 -177
  146. data/spec/fog/openstack/identity_v3/idv3_user_crud.yml +345 -188
  147. data/spec/fog/openstack/identity_v3/idv3_users.yml +182 -116
  148. data/spec/fog/openstack/identity_v3_spec.rb +103 -85
  149. data/spec/fog/openstack/{identity_v3/idv3_other_region.yml → image_v1/common_setup.yml} +50 -93
  150. data/spec/fog/openstack/image_v1/list_images.yml +54 -0
  151. data/spec/fog/openstack/image_v1_spec.rb +24 -0
  152. data/spec/fog/openstack/image_v2/common_setup.yml +144 -0
  153. data/spec/fog/openstack/image_v2/image_schema.json +190 -0
  154. data/spec/fog/openstack/image_v2/image_v2_activation.yml +3988 -0
  155. data/spec/fog/openstack/image_v2/image_v2_create_id.yml +291 -0
  156. data/spec/fog/openstack/image_v2/image_v2_crud.yml +437 -0
  157. data/spec/fog/openstack/image_v2/image_v2_member_crudl.yml +451 -0
  158. data/spec/fog/openstack/image_v2/image_v2_tags.yml +532 -0
  159. data/spec/fog/openstack/image_v2/image_v2_upload_download.yml +3966 -0
  160. data/spec/fog/openstack/image_v2/minimal.ova +0 -0
  161. data/spec/fog/openstack/image_v2_spec.rb +285 -0
  162. data/spec/fog/openstack/image_v2_upload_spec.rb +74 -0
  163. data/spec/fog/openstack/shared_context.rb +14 -10
  164. data/tests/compute/helper.rb +0 -3
  165. data/tests/digitalocean/requests/compute_v2/list_flavors_tests.rb +25 -0
  166. data/tests/digitalocean/requests/compute_v2/list_images_tests.rb +25 -0
  167. data/tests/digitalocean/requests/compute_v2/list_regions_tests.rb +21 -0
  168. data/tests/digitalocean/requests/compute_v2/server_tests.rb +77 -0
  169. data/tests/helpers/mock_helper.rb +1 -0
  170. data/tests/opennebula/models/compute/flavor_tests.rb +1 -1
  171. data/tests/openstack/requests/orchestration/stack_tests.rb +5 -1
  172. data/tests/openstack/requests/volume/volume_type_tests.rb +32 -0
  173. data/tests/rackspace/models/compute_v2/server_tests.rb +7 -7
  174. metadata +160 -236
  175. data/gemfiles/Gemfile-ruby-1.8.7 +0 -17
  176. data/lib/fog/bin/xenserver.rb +0 -29
  177. data/lib/fog/openstack/models/image/image.rb +0 -76
  178. data/lib/fog/openstack/models/image/images.rb +0 -67
  179. data/lib/fog/openstack/requests/image/create_image.rb +0 -76
  180. data/lib/fog/openstack/requests/image/get_image.rb +0 -45
  181. data/lib/fog/openstack/requests/image/get_image_by_id.rb +0 -32
  182. data/lib/fog/openstack/requests/image/get_image_members.rb +0 -29
  183. data/lib/fog/openstack/requests/image/get_shared_images.rb +0 -29
  184. data/lib/fog/openstack/requests/image/list_public_images.rb +0 -33
  185. data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +0 -35
  186. data/lib/fog/openstack/requests/image/remove_member_from_image.rb +0 -23
  187. data/lib/fog/openstack/requests/image/set_tenant.rb +0 -19
  188. data/lib/fog/openstack/requests/image/update_image.rb +0 -64
  189. data/lib/fog/openstack/requests/image/update_image_members.rb +0 -37
  190. data/lib/fog/xenserver.rb +0 -1
  191. data/lib/fog/xenserver/CHANGELOG.md +0 -77
  192. data/lib/fog/xenserver/compute.rb +0 -186
  193. data/lib/fog/xenserver/core.rb +0 -94
  194. data/lib/fog/xenserver/examples/README.md +0 -11
  195. data/lib/fog/xenserver/examples/chage_default_storage_repository.md +0 -99
  196. data/lib/fog/xenserver/examples/creating_servers.md +0 -168
  197. data/lib/fog/xenserver/examples/getting_started.md +0 -163
  198. data/lib/fog/xenserver/examples/networks-and-vlans.rb +0 -44
  199. data/lib/fog/xenserver/examples/storage_repositories.md +0 -94
  200. data/lib/fog/xenserver/models/compute/blob.rb +0 -22
  201. data/lib/fog/xenserver/models/compute/blobs.rb +0 -25
  202. data/lib/fog/xenserver/models/compute/bond.rb +0 -23
  203. data/lib/fog/xenserver/models/compute/bonds.rb +0 -25
  204. data/lib/fog/xenserver/models/compute/console.rb +0 -29
  205. data/lib/fog/xenserver/models/compute/consoles.rb +0 -25
  206. data/lib/fog/xenserver/models/compute/crash_dump.rb +0 -19
  207. data/lib/fog/xenserver/models/compute/crash_dumps.rb +0 -25
  208. data/lib/fog/xenserver/models/compute/dr_task.rb +0 -17
  209. data/lib/fog/xenserver/models/compute/dr_tasks.rb +0 -25
  210. data/lib/fog/xenserver/models/compute/gpu_group.rb +0 -22
  211. data/lib/fog/xenserver/models/compute/gpu_groups.rb +0 -25
  212. data/lib/fog/xenserver/models/compute/guest_metrics.rb +0 -26
  213. data/lib/fog/xenserver/models/compute/host.rb +0 -156
  214. data/lib/fog/xenserver/models/compute/host_cpu.rb +0 -34
  215. data/lib/fog/xenserver/models/compute/host_crash_dump.rb +0 -20
  216. data/lib/fog/xenserver/models/compute/host_crash_dumps.rb +0 -25
  217. data/lib/fog/xenserver/models/compute/host_metrics.rb +0 -26
  218. data/lib/fog/xenserver/models/compute/host_patch.rb +0 -25
  219. data/lib/fog/xenserver/models/compute/host_patchs.rb +0 -25
  220. data/lib/fog/xenserver/models/compute/hosts.rb +0 -25
  221. data/lib/fog/xenserver/models/compute/network.rb +0 -93
  222. data/lib/fog/xenserver/models/compute/networks.rb +0 -29
  223. data/lib/fog/xenserver/models/compute/pbd.rb +0 -37
  224. data/lib/fog/xenserver/models/compute/pbds.rb +0 -29
  225. data/lib/fog/xenserver/models/compute/pci.rb +0 -22
  226. data/lib/fog/xenserver/models/compute/pcis.rb +0 -25
  227. data/lib/fog/xenserver/models/compute/pgpu.rb +0 -20
  228. data/lib/fog/xenserver/models/compute/pgpus.rb +0 -25
  229. data/lib/fog/xenserver/models/compute/pif.rb +0 -54
  230. data/lib/fog/xenserver/models/compute/pif_metrics.rb +0 -28
  231. data/lib/fog/xenserver/models/compute/pifs.rb +0 -29
  232. data/lib/fog/xenserver/models/compute/pifs_metrics.rb +0 -25
  233. data/lib/fog/xenserver/models/compute/pool.rb +0 -75
  234. data/lib/fog/xenserver/models/compute/pool_patch.rb +0 -24
  235. data/lib/fog/xenserver/models/compute/pool_patchs.rb +0 -25
  236. data/lib/fog/xenserver/models/compute/pools.rb +0 -29
  237. data/lib/fog/xenserver/models/compute/role.rb +0 -19
  238. data/lib/fog/xenserver/models/compute/roles.rb +0 -25
  239. data/lib/fog/xenserver/models/compute/server.rb +0 -251
  240. data/lib/fog/xenserver/models/compute/server_appliance.rb +0 -21
  241. data/lib/fog/xenserver/models/compute/server_appliances.rb +0 -25
  242. data/lib/fog/xenserver/models/compute/servers.rb +0 -64
  243. data/lib/fog/xenserver/models/compute/storage_manager.rb +0 -28
  244. data/lib/fog/xenserver/models/compute/storage_managers.rb +0 -25
  245. data/lib/fog/xenserver/models/compute/storage_repositories.rb +0 -27
  246. data/lib/fog/xenserver/models/compute/storage_repository.rb +0 -90
  247. data/lib/fog/xenserver/models/compute/tunnel.rb +0 -20
  248. data/lib/fog/xenserver/models/compute/tunnels.rb +0 -25
  249. data/lib/fog/xenserver/models/compute/vbd.rb +0 -88
  250. data/lib/fog/xenserver/models/compute/vbd_metrics.rb +0 -25
  251. data/lib/fog/xenserver/models/compute/vbds.rb +0 -29
  252. data/lib/fog/xenserver/models/compute/vdi.rb +0 -102
  253. data/lib/fog/xenserver/models/compute/vdis.rb +0 -25
  254. data/lib/fog/xenserver/models/compute/vif.rb +0 -56
  255. data/lib/fog/xenserver/models/compute/vifs.rb +0 -25
  256. data/lib/fog/xenserver/models/compute/vlan.rb +0 -78
  257. data/lib/fog/xenserver/models/compute/vlans.rb +0 -35
  258. data/lib/fog/xenserver/models/compute/vmpp.rb +0 -35
  259. data/lib/fog/xenserver/models/compute/vmpps.rb +0 -25
  260. data/lib/fog/xenserver/models/compute/vtpm.rb +0 -18
  261. data/lib/fog/xenserver/models/compute/vtpms.rb +0 -25
  262. data/lib/fog/xenserver/parser.rb +0 -34
  263. data/lib/fog/xenserver/parsers/get_hosts.rb +0 -16
  264. data/lib/fog/xenserver/parsers/get_networks.rb +0 -16
  265. data/lib/fog/xenserver/parsers/get_pools.rb +0 -16
  266. data/lib/fog/xenserver/parsers/get_records.rb +0 -16
  267. data/lib/fog/xenserver/parsers/get_storage_repositories.rb +0 -16
  268. data/lib/fog/xenserver/parsers/get_vbds.rb +0 -16
  269. data/lib/fog/xenserver/parsers/get_vifs.rb +0 -16
  270. data/lib/fog/xenserver/parsers/get_vms.rb +0 -16
  271. data/lib/fog/xenserver/requests/compute/clone_server.rb +0 -30
  272. data/lib/fog/xenserver/requests/compute/create_network.rb +0 -46
  273. data/lib/fog/xenserver/requests/compute/create_server.rb +0 -144
  274. data/lib/fog/xenserver/requests/compute/create_sr.rb +0 -88
  275. data/lib/fog/xenserver/requests/compute/create_vbd.rb +0 -43
  276. data/lib/fog/xenserver/requests/compute/create_vdi.rb +0 -57
  277. data/lib/fog/xenserver/requests/compute/create_vif.rb +0 -62
  278. data/lib/fog/xenserver/requests/compute/create_vlan.rb +0 -43
  279. data/lib/fog/xenserver/requests/compute/destroy_network.rb +0 -31
  280. data/lib/fog/xenserver/requests/compute/destroy_record.rb +0 -11
  281. data/lib/fog/xenserver/requests/compute/destroy_server.rb +0 -20
  282. data/lib/fog/xenserver/requests/compute/destroy_sr.rb +0 -28
  283. data/lib/fog/xenserver/requests/compute/destroy_vdi.rb +0 -20
  284. data/lib/fog/xenserver/requests/compute/destroy_vif.rb +0 -20
  285. data/lib/fog/xenserver/requests/compute/destroy_vlan.rb +0 -30
  286. data/lib/fog/xenserver/requests/compute/disable_host.rb +0 -23
  287. data/lib/fog/xenserver/requests/compute/eject_vbd.rb +0 -17
  288. data/lib/fog/xenserver/requests/compute/enable_host.rb +0 -22
  289. data/lib/fog/xenserver/requests/compute/get_record.rb +0 -31
  290. data/lib/fog/xenserver/requests/compute/get_records.rb +0 -24
  291. data/lib/fog/xenserver/requests/compute/insert_vbd.rb +0 -17
  292. data/lib/fog/xenserver/requests/compute/provision_server.rb +0 -17
  293. data/lib/fog/xenserver/requests/compute/reboot_host.rb +0 -17
  294. data/lib/fog/xenserver/requests/compute/reboot_server.rb +0 -17
  295. data/lib/fog/xenserver/requests/compute/scan_sr.rb +0 -17
  296. data/lib/fog/xenserver/requests/compute/set_affinity.rb +0 -19
  297. data/lib/fog/xenserver/requests/compute/set_attribute.rb +0 -19
  298. data/lib/fog/xenserver/requests/compute/shutdown_host.rb +0 -17
  299. data/lib/fog/xenserver/requests/compute/shutdown_server.rb +0 -17
  300. data/lib/fog/xenserver/requests/compute/snapshot_revert.rb +0 -24
  301. data/lib/fog/xenserver/requests/compute/snapshot_server.rb +0 -17
  302. data/lib/fog/xenserver/requests/compute/start_server.rb +0 -17
  303. data/lib/fog/xenserver/requests/compute/start_vm.rb +0 -19
  304. data/lib/fog/xenserver/requests/compute/unplug_pbd.rb +0 -20
  305. data/lib/fog/xenserver/requests/compute/unplug_vbd.rb +0 -25
  306. data/lib/fog/xenserver/utilities.rb +0 -8
  307. data/tests/xenserver/README +0 -21
  308. data/tests/xenserver/compute_tests.rb +0 -51
  309. data/tests/xenserver/helper.rb +0 -36
  310. data/tests/xenserver/models/compute/console_test.rb +0 -35
  311. data/tests/xenserver/models/compute/consoles_test.rb +0 -19
  312. data/tests/xenserver/models/compute/host_cpu_tests.rb +0 -58
  313. data/tests/xenserver/models/compute/host_metrics_tests.rb +0 -48
  314. data/tests/xenserver/models/compute/host_tests.rb +0 -98
  315. data/tests/xenserver/models/compute/hosts_tests.rb +0 -22
  316. data/tests/xenserver/models/compute/network_tests.rb +0 -79
  317. data/tests/xenserver/models/compute/networks_tests.rb +0 -22
  318. data/tests/xenserver/models/compute/pbd_tests.rb +0 -76
  319. data/tests/xenserver/models/compute/pbds_tests.rb +0 -22
  320. data/tests/xenserver/models/compute/pif_tests.rb +0 -58
  321. data/tests/xenserver/models/compute/pifs_tests.rb +0 -22
  322. data/tests/xenserver/models/compute/pool_tests.rb +0 -56
  323. data/tests/xenserver/models/compute/pools_tests.rb +0 -30
  324. data/tests/xenserver/models/compute/server_tests.rb +0 -184
  325. data/tests/xenserver/models/compute/servers_tests.rb +0 -89
  326. data/tests/xenserver/models/compute/storage_repositories_tests.rb +0 -30
  327. data/tests/xenserver/models/compute/storage_repository_tests.rb +0 -114
  328. data/tests/xenserver/models/compute/vbd_tests.rb +0 -115
  329. data/tests/xenserver/models/compute/vbds_tests.rb +0 -22
  330. data/tests/xenserver/models/compute/vif_tests.rb +0 -53
  331. data/tests/xenserver/models/compute/vifs_tests.rb +0 -22
  332. data/tests/xenserver/models/compute/vlan_tests.rb +0 -76
  333. data/tests/xenserver/models/compute/vlans_tests.rb +0 -36
  334. data/tests/xenserver/requests/compute/clone_server_tests.rb +0 -32
  335. data/tests/xenserver/requests/compute/create_network_tests.rb +0 -20
  336. data/tests/xenserver/requests/compute/create_server_tests.rb +0 -129
  337. data/tests/xenserver/requests/compute/create_sr_tests.rb +0 -54
  338. data/tests/xenserver/requests/compute/create_vdi_tests.rb +0 -80
  339. data/tests/xenserver/requests/compute/create_vif_tests.rb +0 -88
  340. data/tests/xenserver/requests/compute/create_vlan_tests.rb +0 -36
  341. data/tests/xenserver/requests/compute/destroy_network_tests.rb +0 -13
  342. data/tests/xenserver/requests/compute/destroy_sr_tests.rb +0 -46
  343. data/tests/xenserver/requests/compute/destroy_vdi_tests.rb +0 -25
  344. data/tests/xenserver/requests/compute/destroy_vlan_tests.rb +0 -36
  345. data/tests/xenserver/requests/compute/disable_host_tests.rb +0 -16
  346. data/tests/xenserver/requests/compute/enable_host_tests.rb +0 -16
  347. data/tests/xenserver/requests/compute/get_record_tests.rb +0 -15
  348. data/tests/xenserver/requests/compute/set_attribute_tests.rb +0 -66
  349. data/tests/xenserver/requests/compute/unplug_pbd_tests.rb +0 -48
  350. data/tests/xenserver/xenserver_tests.rb +0 -33
@@ -0,0 +1,67 @@
1
+ require 'fog/openstack/models/collection'
2
+ require 'fog/openstack/models/image_v2/image'
3
+
4
+ module Fog
5
+ module Image
6
+ class OpenStack
7
+ class V2
8
+
9
+ class Images < Fog::OpenStack::Collection
10
+ model Fog::Image::OpenStack::V2::Image
11
+
12
+ def all(options = {})
13
+ load_response(service.list_images(options), 'images')
14
+ end
15
+
16
+ def summary(options = {})
17
+ load_response(service.list_images(options), 'images')
18
+ end
19
+
20
+ def find_by_id(id)
21
+ image_hash = service.get_image_by_id(id).body
22
+ Fog::Image::OpenStack::V2::Image.new(
23
+ image_hash.merge(:service => service))
24
+ end
25
+
26
+ alias_method :get, :find_by_id
27
+
28
+ def public
29
+ images = load(service.list_images.body['images'])
30
+ images.delete_if { |image| image.is_public == false }
31
+ end
32
+
33
+ def private
34
+ images = load(service.list_images.body['images'])
35
+ images.delete_if { |image| image.is_public }
36
+ end
37
+
38
+ def destroy(id)
39
+ image = self.find_by_id(id)
40
+ image.destroy
41
+ end
42
+
43
+ def method_missing(method_sym, *arguments, &block)
44
+ if method_sym.to_s =~ /^find_by_(.*)$/
45
+ load(service.list_images_detailed($1, arguments.first).body['images'])
46
+ else
47
+ super
48
+ end
49
+ end
50
+
51
+ def find_by_size_min(size)
52
+ find_attribute(__method__, size)
53
+ end
54
+
55
+ def find_by_size_max(size)
56
+ find_attribute(__method__, size)
57
+ end
58
+
59
+ def find_attribute(attribute, value)
60
+ attribute = attribute.to_s.gsub("find_by_", "")
61
+ load(service.list_images_detailed(attribute, value).body['images'])
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -35,6 +35,11 @@ module Fog
35
35
  service.update_stack(self, default_options).body['stack']
36
36
  end
37
37
 
38
+ def patch(options = {})
39
+ requires :stack_name
40
+ service.patch_stack(self, options).body['stack']
41
+ end
42
+
38
43
  def delete
39
44
  service.delete_stack(self)
40
45
  end
@@ -8,6 +8,31 @@ module Fog
8
8
 
9
9
  attribute :name
10
10
  attribute :volume_backend_name
11
+ attribute :extra_specs
12
+
13
+ def create
14
+ requires :name
15
+
16
+ response = service.create_volume_type(self.attributes)
17
+ merge_attributes(response.body['volume_type'])
18
+
19
+ self
20
+ end
21
+
22
+ def update
23
+ requires :id
24
+
25
+ response = service.update_volume_type(self.id, self.attributes)
26
+ merge_attributes(response.body['volume_type'])
27
+
28
+ self
29
+ end
30
+
31
+ def destroy
32
+ requires :id
33
+ service.delete_volume_type(self.id)
34
+ true
35
+ end
11
36
  end
12
37
  end
13
38
  end
@@ -50,6 +50,7 @@ module Fog
50
50
  request :show_resource_template
51
51
  request :show_stack_details
52
52
  request :update_stack
53
+ request :patch_stack
53
54
  request :validate_template
54
55
 
55
56
  module Reflectable
@@ -12,14 +12,25 @@ module Fog
12
12
  request(
13
13
  :expects => 200,
14
14
  :method => 'GET',
15
- :path => "servers/#{server_id}/actions"
16
- ).body['actions']
15
+ :path => "servers/#{server_id}/os-instance-actions"
16
+ ).body['instanceActions']
17
17
  end # def server_actions
18
18
  end # class Real
19
19
 
20
20
  class Mock
21
21
  def server_actions(server_id)
22
- Array.new
22
+ response = Excon::Response.new
23
+ response.status = 200
24
+ response.body = [{
25
+ 'instance_uuid' => server_id,
26
+ 'user_id' => '7067d67a2b23435ca2366588680b66c3',
27
+ 'start_time' => Time.now.iso8601,
28
+ 'request_id' => "req-#{server_id}",
29
+ 'action' => 'stop',
30
+ 'message' => nil,
31
+ 'project_id' => '9d5d0b877cf449fdae078659cfa12e86'
32
+ }]
33
+ response
23
34
  end # def server_actions
24
35
  end # class Mock
25
36
  end # class OpenStack
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Image
3
3
  class OpenStack
4
+ class V1
4
5
  class Real
5
6
  def add_member_to_image(image_id, tenant_id)
6
7
  request(
@@ -18,6 +19,7 @@ module Fog
18
19
  response
19
20
  end # def list_tenants
20
21
  end # class Mock
22
+ end # class V1
21
23
  end # class OpenStack
22
24
  end # module Identity
23
25
  end # module Fog
@@ -0,0 +1,78 @@
1
+ module Fog
2
+ module Image
3
+ class OpenStack
4
+ class V1
5
+ class Real
6
+ def create_image(attributes)
7
+ data = {
8
+ 'Content-Type' => 'application/octet-stream',
9
+ 'x-image-meta-name' => attributes[:name],
10
+ 'x-image-meta-disk-format' => attributes[:disk_format],
11
+ 'x-image-meta-container-format' => attributes[:container_format],
12
+ 'x-image-meta-size' => attributes[:size],
13
+ 'x-image-meta-is-public' => attributes[:is_public],
14
+ 'x-image-meta-min-ram' => attributes[:min_ram],
15
+ 'x-image-meta-min-disk' => attributes[:min_disk],
16
+ 'x-image-meta-checksum' => attributes[:checksum],
17
+ 'x-image-meta-owner' => attributes[:owner],
18
+ 'x-glance-api-copy-from' => attributes[:copy_from]
19
+ }.reject { |k, v| v.nil? }
20
+
21
+ body = String.new
22
+ if attributes[:location]
23
+ body = File.open(attributes[:location], "rb")
24
+ # Make sure the image file size is always present
25
+ data['x-image-meta-size'] = File.size(body)
26
+ end
27
+
28
+ unless attributes[:properties].nil?
29
+ attributes[:properties].each do |key, value|
30
+ data["x-image-meta-property-#{key}"] = value
31
+ end
32
+ end
33
+
34
+ request(
35
+ :headers => data,
36
+ :body => body,
37
+ :expects => 201,
38
+ :method => 'POST',
39
+ :path => "images"
40
+ )
41
+ ensure
42
+ body.close if body.respond_to?(:close)
43
+ end
44
+ end
45
+
46
+ class Mock
47
+ def create_image(attributes)
48
+ response = Excon::Response.new
49
+ response.status = 201
50
+
51
+ image_id = Fog::Mock.random_hex(32)
52
+ image = self.data[:images][image_id] = {
53
+ 'name' => attributes[:name],
54
+ 'size' => attributes[:size] || Fog::Mock.random_numbers(8).to_i,
55
+ 'min_disk' => attributes[:min_disk] || 0,
56
+ 'disk_format' => attributes[:disk_format] || 'raw',
57
+ 'created_at' => Time.now.strftime('%FT%T.%6N'),
58
+ 'container_format' => attributes[:container_format] || 'bare',
59
+ 'deleted_at' => nil,
60
+ 'updated_at' => Time.now.strftime('%FT%T.%6N'),
61
+ 'checksum' => attributes[:checksum] || Fog::Mock.random_hex(32),
62
+ 'id' => image_id,
63
+ 'deleted' => false,
64
+ 'protected' => false,
65
+ 'is_public' => attributes[:is_public].to_s == 'true',
66
+ 'status' => 'queued',
67
+ 'min_ram' => attributes[:min_ram] || 0,
68
+ 'owner' => attributes[:owner],
69
+ 'properties' => attributes[:properties] || {}
70
+ }
71
+ response.body = {'image' => image}
72
+ response
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Image
3
+ class OpenStack
4
+ class V1
5
+ class Real
6
+ def delete_image(image_id)
7
+ request(
8
+ :expects => 200,
9
+ :method => 'DELETE',
10
+ :path => "images/#{image_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def delete_image(image_id)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,47 @@
1
+ module Fog
2
+ module Image
3
+ class OpenStack
4
+ class V1
5
+ class Real
6
+ def get_image(image_id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'HEAD',
10
+ :path => "images/#{image_id}"
11
+ )
12
+ end
13
+ end # class Real
14
+
15
+ class Mock
16
+ def get_image(image_id)
17
+ response = Excon::Response.new
18
+ response.status = [200, 204][rand(1)]
19
+ response.headers= {"X-Image-Meta-Is_public" => "True",
20
+ "X-Image-Meta-Min_disk" => "0",
21
+ "X-Image-Meta-Property-Ramdisk_id" => "b45aa128-cd36-4ad9-a026-1a1c2bfd8fdc",
22
+ "X-Image-Meta-Disk_format" => "ami",
23
+ "X-Image-Meta-Created_at" => "2012-02-21T07:32:26",
24
+ "X-Image-Meta-Container_format" => "ami",
25
+ "Etag" => "2f81976cae15c16ef0010c51e3a6c163",
26
+ "Location" => "http://192.168.27.100:9292/v1/images/0e09fbd6-43c5-448a-83e9-0d3d05f9747e",
27
+ "X-Image-Meta-Protected" => "False",
28
+ "Date" => "Fri, 24 Feb 2012 02:14:25 GMT",
29
+ "X-Image-Meta-Name" => "cirros-0.3.0-x86_64-blank",
30
+ "X-Image-Meta-Min_ram" => "0", "Content-Type" => "text/html; charset=UTF-8",
31
+ "X-Image-Meta-Updated_at" => "2012-02-21T07:32:29",
32
+ "X-Image-Meta-Property-Kernel_id" => "cd28951e-e1c2-4bc5-95d3-f0495abbcdc5",
33
+ "X-Image-Meta-Size" => "25165824",
34
+ "X-Image-Meta-Checksum" => "2f81976cae15c16ef0010c51e3a6c163",
35
+ "X-Image-Meta-Deleted" => "False",
36
+ "Content-Length" => "0",
37
+ "X-Image-Meta-Owner" => "ff528b20431645ebb5fa4b0a71ca002f",
38
+ "X-Image-Meta-Status" => "active",
39
+ "X-Image-Meta-Id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e"}
40
+ response.body = ""
41
+ response
42
+ end # def list_tenants
43
+ end # class Mock
44
+ end # class OpenStack
45
+ end
46
+ end # module Identity
47
+ end # module Fog
@@ -0,0 +1,34 @@
1
+ module Fog
2
+ module Image
3
+ class OpenStack
4
+ class V1
5
+ class Real
6
+ def get_image_by_id(image_id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'GET',
10
+ :path => "images/#{image_id}"
11
+ )
12
+ end
13
+ end # class Real
14
+
15
+ class Mock
16
+ def get_image_by_id(image_id)
17
+ response = Excon::Response.new
18
+ response.status = [200, 204][rand(1)]
19
+ response.body = {
20
+ "images" => [{
21
+ "name" => "mock-image-name",
22
+ "size" => 25165824,
23
+ "disk_format" => "ami",
24
+ "container_format" => "ami",
25
+ "id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e",
26
+ "checksum" => "2f81976cae15c16ef0010c51e3a6c163"}]
27
+ }
28
+ response
29
+ end # def list_tenants
30
+ end # class Mock
31
+ end # class OpenStack
32
+ end
33
+ end # module Identity
34
+ end # module Fog
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module Image
3
+ class OpenStack
4
+ class V1
5
+ class Real
6
+ def get_image_members(image_id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'GET',
10
+ :path => "images/#{image_id}/members"
11
+ )
12
+ end
13
+ end # class Real
14
+
15
+ class Mock
16
+ def get_image_members(image_id)
17
+ response = Excon::Response.new
18
+ response.status = [200, 204][rand(1)]
19
+ response.body = {
20
+ "members" => [
21
+ {"member_id" => "ff528b20431645ebb5fa4b0a71ca002f",
22
+ "can_share" => false}
23
+ ]
24
+ }
25
+ response
26
+ end # def list_tenants
27
+ end # class Mock
28
+ end # class OpenStack
29
+ end
30
+ end # module Identity
31
+ end # module Fog
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module Image
3
+ class OpenStack
4
+ class V1
5
+ class Real
6
+ def get_shared_images(tenant_id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'GET',
10
+ :path => "shared-images/#{tenant_id}"
11
+ )
12
+ end
13
+ end # class Real
14
+
15
+ class Mock
16
+ def get_shared_images(tenant_id)
17
+ response = Excon::Response.new
18
+ response.status = [200, 204][rand(1)]
19
+ response.body = {
20
+ "shared_images" => [
21
+ {"image_id" => "ff528b20431645ebb5fa4b0a71ca002f",
22
+ "can_share" => false}
23
+ ]
24
+ }
25
+ response
26
+ end # def list_tenants
27
+ end # class Mock
28
+ end # class OpenStack
29
+ end
30
+ end # module Identity
31
+ end # module Fog
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module Image
3
+ class OpenStack
4
+ class V1
5
+ class Real
6
+ def list_public_images(options = {})
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'GET',
10
+ :path => 'images',
11
+ :query => options
12
+ )
13
+ end
14
+ end # class Real
15
+
16
+ class Mock
17
+ def list_public_images(options = {})
18
+ response = Excon::Response.new
19
+ response.status = [200, 204][rand(1)]
20
+ response.body = {
21
+ "images" => [{
22
+ "name" => Fog::Mock.random_letters(10),
23
+ "size" => Fog::Mock.random_numbers(8).to_i,
24
+ "disk_format" => "iso",
25
+ "container_format" => "bare",
26
+ "id" => Fog::Mock.random_hex(36),
27
+ "checksum" => Fog::Mock.random_hex(32)}]
28
+ }
29
+ response
30
+ end # def list_tenants
31
+ end # class Mock
32
+ end # class OpenStack
33
+ end
34
+ end # module Identity
35
+ end # module Fog