fog 1.34.0 → 1.35.0

Sign up to get free protection for your applications and to get access to all the features.
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