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,142 @@
1
+ require 'fog/openstack/core'
2
+ require 'fog/openstack/image'
3
+
4
+ module Fog
5
+ module Image
6
+ class OpenStack
7
+ class V1 < Fog::Service
8
+
9
+ SUPPORTED_VERSIONS = /v1(\.(0|1))*/
10
+
11
+ requires :openstack_auth_url
12
+ recognizes :openstack_auth_token, :openstack_management_url,
13
+ :persistent, :openstack_service_type, :openstack_service_name,
14
+ :openstack_tenant, :openstack_tenant_id,
15
+ :openstack_api_key, :openstack_username, :openstack_identity_endpoint,
16
+ :current_user, :current_tenant, :openstack_region,
17
+ :openstack_endpoint_type,
18
+ :openstack_project_name, :openstack_project_id,
19
+ :openstack_project_domain, :openstack_user_domain, :openstack_domain_name,
20
+ :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id
21
+
22
+ model_path 'fog/openstack/models/image_v1'
23
+
24
+ model :image
25
+ collection :images
26
+
27
+ request_path 'fog/openstack/requests/image_v1'
28
+
29
+ request :list_public_images
30
+ request :list_public_images_detailed
31
+ request :get_image
32
+ request :create_image
33
+ request :update_image
34
+ request :get_image_members
35
+ request :update_image_members
36
+ request :get_shared_images
37
+ request :add_member_to_image
38
+ request :remove_member_from_image
39
+ request :delete_image
40
+ request :get_image_by_id
41
+ request :set_tenant
42
+
43
+ class Mock
44
+ def self.data
45
+ @data ||= Hash.new do |hash, key|
46
+ hash[key] = {
47
+ :images => {}
48
+ }
49
+ end
50
+ end
51
+
52
+ def self.reset
53
+ @data = nil
54
+ end
55
+
56
+ def initialize(options={})
57
+ @openstack_username = options[:openstack_username]
58
+ @openstack_tenant = options[:openstack_tenant]
59
+ @openstack_auth_uri = URI.parse(options[:openstack_auth_url])
60
+
61
+ @auth_token = Fog::Mock.random_base64(64)
62
+ @auth_token_expiration = (Time.now.utc + 86400).iso8601
63
+
64
+ management_url = URI.parse(options[:openstack_auth_url])
65
+ management_url.port = 9292
66
+ management_url.path = '/v1'
67
+ @openstack_management_url = management_url.to_s
68
+
69
+ @data ||= { :users => {} }
70
+ unless @data[:users].find {|u| u['name'] == options[:openstack_username]}
71
+ id = Fog::Mock.random_numbers(6).to_s
72
+ @data[:users][id] = {
73
+ 'id' => id,
74
+ 'name' => options[:openstack_username],
75
+ 'email' => "#{options[:openstack_username]}@mock.com",
76
+ 'tenantId' => Fog::Mock.random_numbers(6).to_s,
77
+ 'enabled' => true
78
+ }
79
+ end
80
+ end
81
+
82
+ def data
83
+ self.class.data[@openstack_username]
84
+ end
85
+
86
+ def reset_data
87
+ self.class.data.delete(@openstack_username)
88
+ end
89
+
90
+ def credentials
91
+ { :provider => 'openstack',
92
+ :openstack_auth_url => @openstack_auth_uri.to_s,
93
+ :openstack_auth_token => @auth_token,
94
+ :openstack_region => @openstack_region,
95
+ :openstack_management_url => @openstack_management_url }
96
+ end
97
+ end
98
+
99
+ class Real
100
+ include Fog::OpenStack::Core
101
+ include Fog::Image::OpenStack::Common
102
+
103
+ def initialize(options={})
104
+ initialize_identity options
105
+
106
+ @openstack_service_type = options[:openstack_service_type] || ['image']
107
+ @openstack_service_name = options[:openstack_service_name]
108
+ @openstack_endpoint_type = options[:openstack_endpoint_type] || 'adminURL'
109
+
110
+ @connection_options = options[:connection_options] || {}
111
+
112
+ authenticate
113
+
114
+ process_path @openstack_management_uri
115
+ unless @path.match(SUPPORTED_VERSIONS)
116
+ @path = Fog::OpenStack.get_supported_version_path(SUPPORTED_VERSIONS,
117
+ @openstack_management_uri,
118
+ @auth_token,
119
+ @connection_options)
120
+ end
121
+
122
+ @persistent = options[:persistent] || false
123
+ @connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
124
+ end
125
+
126
+ def process_path uri
127
+ unless @path.match(SUPPORTED_VERSIONS)
128
+ @path = "/" + Fog::OpenStack.get_supported_version(SUPPORTED_VERSIONS,
129
+ uri,
130
+ @auth_token,
131
+ @connection_options)
132
+ end
133
+ @path
134
+ end
135
+
136
+ private
137
+
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,137 @@
1
+ require 'fog/openstack/core'
2
+ require 'fog/openstack/image'
3
+
4
+ module Fog
5
+ module Image
6
+ class OpenStack
7
+ class V2 < Fog::Service
8
+
9
+ SUPPORTED_VERSIONS = /v2(\.(0|1|2|3))*/
10
+
11
+ requires :openstack_auth_url
12
+ recognizes :openstack_auth_token, :openstack_management_url,
13
+ :persistent, :openstack_service_type, :openstack_service_name,
14
+ :openstack_tenant, :openstack_tenant_id,
15
+ :openstack_api_key, :openstack_username, :openstack_identity_endpoint,
16
+ :current_user, :current_tenant, :openstack_region,
17
+ :openstack_endpoint_type,
18
+ :openstack_project_name, :openstack_project_id,
19
+ :openstack_project_domain, :openstack_user_domain, :openstack_domain_name,
20
+ :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id
21
+
22
+ model_path 'fog/openstack/models/image_v2'
23
+
24
+ model :image
25
+ collection :images
26
+
27
+ request_path 'fog/openstack/requests/image_v2'
28
+
29
+ request :list_images
30
+ request :get_image
31
+ request :create_image
32
+ request :update_image
33
+ request :upload_image
34
+ request :download_image
35
+ request :reactivate_image
36
+ request :deactivate_image
37
+ request :add_tag_to_image
38
+ request :remove_tag_from_image
39
+ request :get_image_members
40
+ request :get_member_details
41
+ request :update_image_member
42
+ request :get_shared_images
43
+ request :add_member_to_image
44
+ request :remove_member_from_image
45
+ request :delete_image
46
+ request :get_image_by_id
47
+ request :set_tenant
48
+
49
+ class Mock
50
+ def self.data
51
+ @data ||= Hash.new do |hash, key|
52
+ hash[key] = {
53
+ :images => {}
54
+ }
55
+ end
56
+ end
57
+
58
+ def self.reset
59
+ @data = nil
60
+ end
61
+
62
+ def initialize(options={})
63
+ @openstack_username = options[:openstack_username]
64
+ @openstack_tenant = options[:openstack_tenant]
65
+ @openstack_auth_uri = URI.parse(options[:openstack_auth_url])
66
+
67
+ @auth_token = Fog::Mock.random_base64(64)
68
+ @auth_token_expiration = (Time.now.utc + 86400).iso8601
69
+
70
+ management_url = URI.parse(options[:openstack_auth_url])
71
+ management_url.port = 9292
72
+ management_url.path = '/v2'
73
+ @openstack_management_url = management_url.to_s
74
+
75
+ @data ||= { :users => {} }
76
+ unless @data[:users].find {|u| u['name'] == options[:openstack_username]}
77
+ id = Fog::Mock.random_numbers(6).to_s
78
+ @data[:users][id] = {
79
+ 'id' => id,
80
+ 'name' => options[:openstack_username],
81
+ 'email' => "#{options[:openstack_username]}@mock.com",
82
+ 'tenantId' => Fog::Mock.random_numbers(6).to_s,
83
+ 'enabled' => true
84
+ }
85
+ end
86
+ end
87
+
88
+ def data
89
+ self.class.data[@openstack_username]
90
+ end
91
+
92
+ def reset_data
93
+ self.class.data.delete(@openstack_username)
94
+ end
95
+
96
+ def credentials
97
+ { :provider => 'openstack',
98
+ :openstack_auth_url => @openstack_auth_uri.to_s,
99
+ :openstack_auth_token => @auth_token,
100
+ :openstack_region => @openstack_region,
101
+ :openstack_management_url => @openstack_management_url }
102
+ end
103
+ end
104
+
105
+ class Real
106
+ include Fog::OpenStack::Core
107
+ include Fog::Image::OpenStack::Common
108
+
109
+ def initialize(options={})
110
+ initialize_identity options
111
+
112
+ @openstack_service_type = options[:openstack_service_type] || ['image']
113
+ @openstack_service_name = options[:openstack_service_name]
114
+ @openstack_endpoint_type = options[:openstack_endpoint_type] || 'adminURL'
115
+
116
+ @connection_options = options[:connection_options] || {}
117
+
118
+ authenticate
119
+
120
+ unless @path.match(SUPPORTED_VERSIONS)
121
+ @path = Fog::OpenStack.get_supported_version_path(SUPPORTED_VERSIONS,
122
+ @openstack_management_uri,
123
+ @auth_token,
124
+ @connection_options)
125
+ end
126
+
127
+ @persistent = options[:persistent] || false
128
+ @connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
129
+ end
130
+
131
+ private
132
+
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,78 @@
1
+ require 'fog/openstack/models/model'
2
+
3
+ module Fog
4
+ module Image
5
+ class OpenStack
6
+ class V1
7
+ class Image < Fog::OpenStack::Model
8
+ identity :id
9
+
10
+ attribute :name
11
+ attribute :size
12
+ attribute :disk_format
13
+ attribute :container_format
14
+ attribute :id
15
+ attribute :checksum
16
+
17
+ #detailed
18
+ attribute :min_disk
19
+ attribute :created_at
20
+ attribute :deleted_at
21
+ attribute :updated_at
22
+ attribute :deleted
23
+ attribute :protected
24
+ attribute :is_public
25
+ attribute :status
26
+ attribute :min_ram
27
+ attribute :owner
28
+ attribute :properties
29
+ attribute :location
30
+ attribute :copy_from
31
+
32
+ def create
33
+ requires :name
34
+ merge_attributes(service.create_image(self.attributes).body['image'])
35
+ self
36
+ end
37
+
38
+ def update
39
+ requires :name
40
+ merge_attributes(service.update_image(self.attributes).body['image'])
41
+ self
42
+ end
43
+
44
+ def destroy
45
+ requires :id
46
+ service.delete_image(self.id)
47
+ true
48
+ end
49
+
50
+ def add_member(member_id)
51
+ requires :id
52
+ service.add_member_to_image(self.id, member_id)
53
+ end
54
+
55
+ def remove_member(member_id)
56
+ requires :id
57
+ service.remove_member_from_image(self.id, member_id)
58
+ end
59
+
60
+ def update_members(members)
61
+ requires :id
62
+ service.update_image_members(self.id, members)
63
+ end
64
+
65
+ def members
66
+ requires :id
67
+ service.get_image_members(self.id).body['members']
68
+ end
69
+
70
+ def metadata
71
+ requires :id
72
+ service.get_image(self.id).headers
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,70 @@
1
+ require 'fog/openstack/models/collection'
2
+ require 'fog/openstack/models/image_v1/image'
3
+
4
+ module Fog
5
+ module Image
6
+ class OpenStack
7
+ class V1
8
+
9
+ class Images < Fog::OpenStack::Collection
10
+ model Fog::Image::OpenStack::V1::Image
11
+
12
+ def all(options = {})
13
+ load_response(service.list_public_images_detailed(options), 'images')
14
+ end
15
+
16
+ def summary(options = {})
17
+ load_response(service.list_public_images(options), 'images')
18
+ end
19
+
20
+ def details(options = {}, deprecated_query = nil)
21
+ Fog::Logger.deprecation("Calling OpenStack[:glance].images.details will be removed, "\
22
+ " call .images.all for detailed list.")
23
+ load_response(service.list_public_images_detailed(options, deprecated_query), 'images')
24
+ end
25
+
26
+ def find_by_id(id)
27
+ all.find {|image| image.id == id}
28
+ end
29
+ alias_method :get, :find_by_id
30
+
31
+ def public
32
+ images = load(service.list_public_images_detailed.body['images'])
33
+ images.delete_if{|image| image.is_public == false}
34
+ end
35
+
36
+ def private
37
+ images = load(service.list_public_images_detailed.body['images'])
38
+ images.delete_if{|image| image.is_public}
39
+ end
40
+
41
+ def destroy(id)
42
+ image = self.find_by_id(id)
43
+ image.destroy
44
+ end
45
+
46
+ def method_missing(method_sym, *arguments, &block)
47
+ if method_sym.to_s =~ /^find_by_(.*)$/
48
+ load(service.list_public_images_detailed($1 ,arguments.first).body['images'])
49
+ else
50
+ super
51
+ end
52
+ end
53
+
54
+ def find_by_size_min(size)
55
+ find_attribute(__method__, size)
56
+ end
57
+
58
+ def find_by_size_max(size)
59
+ find_attribute(__method__, size)
60
+ end
61
+
62
+ def find_attribute(attribute,value)
63
+ attribute = attribute.to_s.gsub("find_by_", "")
64
+ load(service.list_public_images_detailed(attribute , value).body['images'])
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,149 @@
1
+ require 'fog/openstack/models/model'
2
+
3
+ module Fog
4
+ module Image
5
+ class OpenStack
6
+ class V2
7
+ class Image < Fog::OpenStack::Model
8
+ identity :id
9
+
10
+ attribute :name
11
+ attribute :visibility # public or private
12
+
13
+ attribute :tags
14
+
15
+ attribute :self
16
+ attribute :size
17
+ attribute :disk_format
18
+ attribute :container_format
19
+ attribute :id
20
+ attribute :checksum
21
+ attribute :self
22
+ attribute :file
23
+
24
+ #detailed
25
+ attribute :min_disk
26
+ attribute :created_at
27
+ attribute :updated_at
28
+ attribute :protected
29
+ attribute :status # "queued","saving","active","killed","deleted","pending_delete"
30
+ attribute :min_ram
31
+ attribute :owner
32
+ attribute :properties
33
+ attribute :metadata
34
+ attribute :location
35
+
36
+ # from snapshot support
37
+ attribute :network_allocated
38
+ attribute :base_image_ref
39
+ attribute :image_type
40
+ attribute :instance_uuid
41
+ attribute :user_id
42
+
43
+ def create
44
+ requires :name
45
+ merge_attributes(service.create_image(self.attributes).body)
46
+ self
47
+ end
48
+
49
+ # This overrides the behaviour of Fog::OpenStack::Model::save() which tries to be clever and
50
+ # assumes save=update if an ID is present - but Image V2 allows ID to specified on creation
51
+ def identity
52
+ nil
53
+ end
54
+
55
+ # Hash of attributes to update is passed in. Setting value to nil will delete that attribute.
56
+ # Here we convert that hash into a form suitable for Glance's usage of JSON Patch (RFC6902)
57
+ def update(attr = {})
58
+ requires :id
59
+ json_patch = []
60
+ attr.each do |key, value|
61
+ op = (@attributes.keys.include? key) ? 'replace' : 'add'
62
+ op = 'remove' if value.nil?
63
+ json_patch << {:op => op, :path => "/#{key}", :value => value }
64
+ end
65
+ merge_attributes(
66
+ service.update_image(self.id, json_patch).body)
67
+ self
68
+ end
69
+
70
+ def destroy
71
+ requires :id
72
+ service.delete_image(self.id)
73
+ true
74
+ end
75
+
76
+ def upload_data(io_obj)
77
+ requires :id
78
+ if io_obj.is_a? Hash
79
+ service.upload_image(self.id, nil, io_obj)
80
+ else
81
+ service.upload_image(self.id, io_obj)
82
+ end
83
+ end
84
+
85
+ def download_data(params={})
86
+ requires :id
87
+ service.download_image(self.id, content_range=params[:content_range], params)
88
+ end
89
+
90
+ def reactivate
91
+ requires :id
92
+ service.reactivate_image(self.id)
93
+ end
94
+
95
+ def deactivate
96
+ requires :id
97
+ service.deactivate_image(self.id)
98
+ end
99
+
100
+ def add_member(member_id)
101
+ requires :id
102
+ service.add_member_to_image(self.id, member_id)
103
+ end
104
+
105
+ def remove_member(member_id)
106
+ requires :id
107
+ service.remove_member_from_image(self.id, member_id)
108
+ end
109
+
110
+ def update_member(member)
111
+ requires :id
112
+ service.update_image_member(self.id, member)
113
+ end
114
+
115
+ def members
116
+ requires :id
117
+ service.get_image_members(self.id).body['members']
118
+ end
119
+
120
+ def member(member_id)
121
+ requires :id
122
+ service.get_member_details(self.id, member_id)
123
+ end
124
+
125
+ def add_tags(tags)
126
+ requires :id
127
+ tags.each {|tag| add_tag tag}
128
+ end
129
+
130
+ def add_tag(tag)
131
+ requires :id
132
+ service.add_tag_to_image(self.id, tag)
133
+ end
134
+
135
+ def remove_tags(tags)
136
+ requires :id
137
+ tags.each {|tag| remove_tag tag}
138
+ end
139
+
140
+ def remove_tag(tag)
141
+ requires :id
142
+ service.remove_tag_from_image(self.id, tag)
143
+ end
144
+
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end