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,13 @@
1
+ module Fog
2
+ module Compute
3
+ class DigitalOceanV2
4
+ class Region < Fog::Model
5
+ identity :slug
6
+ attribute :name
7
+ attribute :sizes
8
+ attribute :available
9
+ attribute :features
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ module Fog
2
+ module Compute
3
+ class DigitalOceanV2
4
+ class Regions < Fog::Collection
5
+ model Fog::Compute::DigitalOceanV2::Region
6
+
7
+ # Retrieves regions
8
+ # @return [Fog::Compute::DigitalOceanV2:Regions]
9
+ # @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
10
+ # @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
11
+ # @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
12
+ # @raise [Fog::Compute::DigitalOceanV2::ServiceError]
13
+ # @see https://developers.digitalocean.com/documentation/v2/#list-all-regions
14
+ def all(filters = {})
15
+ data = service.list_regions.body["regions"]
16
+ load(data)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,166 @@
1
+ require 'fog/compute/models/server'
2
+
3
+ module Fog
4
+ module Compute
5
+ class DigitalOceanV2
6
+ # A DigitalOcean Droplet
7
+ #
8
+ class Server < Fog::Compute::Server
9
+ identity :id
10
+ attribute :name
11
+ attribute :memory
12
+ attribute :vcpus
13
+ attribute :disk
14
+ attribute :locked
15
+ attribute :created_at
16
+ attribute :status
17
+ attribute :backup_ids
18
+ attribute :snapshot_ids
19
+ attribute :features
20
+ attribute :region
21
+ attribute :image
22
+ attribute :size
23
+ attribute :size_slug
24
+ attribute :networks
25
+ attribute :kernel
26
+ attribute :next_backup_window
27
+ attribute :private_networking
28
+ attribute :backups
29
+ attribute :ipv6
30
+ attribute :ssh_keys
31
+
32
+ def public_ip_address
33
+ ipv4_address
34
+ end
35
+
36
+ def ipv6_address
37
+ if (net = networks['v6'].find { |n| n['type'] == 'public' })
38
+ net['ip_address']
39
+ end
40
+ end
41
+
42
+ def ipv4_address
43
+ if (net = networks['v4'].find { |n| n['type'] == 'public' })
44
+ net['ip_address']
45
+ end
46
+ end
47
+
48
+ def save
49
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
50
+ requires :name, :region, :size, :image
51
+
52
+ options = {}
53
+ if attributes[:ssh_keys]
54
+ options[:ssh_keys] = attributes[:ssh_keys]
55
+ elsif @ssh_keys
56
+ options[:ssh_keys] = @ssh_keys.map(&:id)
57
+ end
58
+
59
+ options[:private_networking] = private_networking
60
+ options[:backups] = backups
61
+ options[:ipv6] = ipv6
62
+
63
+ data = service.create_server(name, size, image, region, options)
64
+
65
+ merge_attributes(data.body['droplet'])
66
+ true
67
+ end
68
+
69
+ def delete
70
+ requires :id
71
+ response = service.delete_server id
72
+ response.body
73
+ end
74
+
75
+ def ready?
76
+ status == 'active'
77
+ end
78
+
79
+ def actions
80
+ requires :id
81
+ response = service.list_droplet_actions id
82
+ response.body
83
+ end
84
+
85
+ def action(action_id)
86
+ requires :id
87
+ response = service.get_droplet_action(id, action_id)
88
+ response.body
89
+ end
90
+
91
+ def reboot
92
+ perform_action :reboot_server
93
+ end
94
+
95
+ def disable_backups
96
+ perform_action :disable_backups
97
+ end
98
+
99
+ def power_cycle
100
+ perform_action :power_cycle
101
+ end
102
+
103
+ def shutdown
104
+ perform_action :shutdown
105
+ end
106
+
107
+ def power_off
108
+ perform_action :power_off
109
+ end
110
+
111
+ def power_on
112
+ perform_action :power_on
113
+ end
114
+
115
+ def restore(image)
116
+ perform_action :restore, image
117
+ end
118
+
119
+ def password_reset
120
+ perform_action :password_reset
121
+ end
122
+
123
+ def resize(resize_disk, size)
124
+ perform_action :resize, resize_disk, size
125
+ end
126
+
127
+ def rebuild(image)
128
+ perform_action :rebuild, image
129
+ end
130
+
131
+ def rename(name)
132
+ perform_action :rename, name
133
+ end
134
+
135
+ def change_kernel(kernel)
136
+ perform_action :change_kernel, kernel
137
+ end
138
+
139
+ def enable_ipv6
140
+ perform_action :enable_ipv6
141
+ end
142
+
143
+ def enable_private_networking
144
+ perform_action :enable_private_networking
145
+ end
146
+
147
+ def snapshot(name)
148
+ perform_action :snapshot, name
149
+ end
150
+
151
+ def upgrade
152
+ perform_action :upgrade
153
+ end
154
+
155
+ private
156
+
157
+ # Performs a droplet action with the given set of arguments.
158
+ def perform_action(action, *args)
159
+ requires :id
160
+ response = service.send(action, id, *args)
161
+ response.body
162
+ end
163
+ end
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,39 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/digitalocean/models/compute/server'
3
+
4
+ module Fog
5
+ module Compute
6
+ class DigitalOceanV2
7
+ class Servers < Fog::Collection
8
+ model Fog::Compute::DigitalOceanV2::Server
9
+
10
+ # Returns list of servers
11
+ # @return [Fog::Compute::DigitalOceanV2::Servers]
12
+ # @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
13
+ # @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
14
+ # @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
15
+ # @raise [Fog::Compute::DigitalOceanV2::ServiceError]
16
+ # @see https://developers.digitalocean.com/documentation/v2/#droplets
17
+ def all(filters = {})
18
+ data = service.list_servers.body['droplets']
19
+ load(data)
20
+ end
21
+
22
+ # Retrieves server
23
+ # @param [String] id for server to be returned
24
+ # @return [Fog::Compute::DigitalOceanV2:Server]
25
+ # @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
26
+ # @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
27
+ # @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
28
+ # @raise [Fog::Compute::DigitalOceanV2::ServiceError]
29
+ # @see https://developers.digitalocean.com/documentation/v2/#retrieve-an-existing-droplet-by-id
30
+ def get(id)
31
+ server = service.get_server_details(id).body['droplet']
32
+ new(server) if server
33
+ rescue Fog::Errors::NotFound
34
+ nil
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Compute
3
+ class DigitalOceanV2
4
+ class SshKey < Fog::Model
5
+ identity :id
6
+ attribute :fingerprint
7
+ attribute :public_key
8
+ attribute :name
9
+ end
10
+
11
+ def save
12
+ requires :name, :public_key
13
+ merge_attributes(service.create_ssh_key(name, public_key).body['ssh_key'])
14
+ true
15
+ end
16
+
17
+ def destroy
18
+ requires :id
19
+ service.delete_ssh_key id
20
+ end
21
+
22
+ def update
23
+ requires :id, :name
24
+ data = service.update_server(id, name)
25
+ merge_attributes(data.body['ssh_key'])
26
+ true
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module Compute
3
+ class DigitalOceanV2
4
+ class SshKeys < Fog::Collection
5
+ model Fog::Compute::DigitalOceanV2::SshKey
6
+
7
+ # Returns list of ssh keys
8
+ # @return [Fog::Compute::DigitalOceanV2::Sshkeys] Retrieves a list of ssh keys.
9
+ # @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
10
+ # @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
11
+ # @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
12
+ # @raise [Fog::Compute::DigitalOceanV2::ServiceError]
13
+ # @see https://developers.digitalocean.com/documentation/v2/#list-all-keys
14
+ def all(filters={})
15
+ data = service.list_ssh_keys.body['ssh_keys']
16
+ load(data)
17
+ end
18
+
19
+ # Returns ssh key
20
+ # @return [Fog::Compute::DigitalOceanV2::Sshkeys] Retrieves a list of ssh keys.
21
+ # @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
22
+ # @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
23
+ # @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
24
+ # @raise [Fog::Compute::DigitalOceanV2::ServiceError]
25
+ # @see https://developers.digitalocean.com/documentation/v2/#retrieve-an-existing-key
26
+ def get(id)
27
+ key = service.get_ssh_key(id).body['ssh_key']
28
+ new(key) if key
29
+ rescue Fog::Errors::NotFound
30
+ nil
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,44 @@
1
+ module Fog
2
+ module Compute
3
+ class DigitalOceanV2
4
+ class Real
5
+ def change_kernel(id, kernel)
6
+ body = { :type => "change_kernel", :kernel => kernel }
7
+
8
+ encoded_body = Fog::JSON.encode(body)
9
+
10
+ request(
11
+ :expects => [201],
12
+ :headers => {
13
+ 'Content-Type' => "application/json; charset=UTF-8",
14
+ },
15
+ :method => 'POST',
16
+ :path => "v2/droplets/#{id}/actions",
17
+ :body => encoded_body,
18
+ )
19
+ end
20
+ end
21
+
22
+ class Mock
23
+ def change_kernel(id, kernel)
24
+ response = Excon::Response.new
25
+ response.status = 201
26
+ response.body = {
27
+ 'action' => {
28
+ 'id' => Fog::Mock.random_numbers(1).to_i,
29
+ 'status' => "in-progress",
30
+ 'type' => "change_kernel",
31
+ 'started_at' => "2014-11-14T16:31:00Z",
32
+ 'completed_at' => null,
33
+ 'resource_id' => id,
34
+ 'resource_type' => "droplet",
35
+ 'region' => "nyc3",
36
+ 'region_slug' => "nyc3"
37
+ }
38
+ }
39
+ response
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ module Fog
2
+ module Compute
3
+ class DigitalOceanV2
4
+ class Real
5
+ def convert_to_snapshot(id)
6
+ body = { :type => 'convert',}
7
+
8
+ encoded_body = Fog::JSON.encode(body)
9
+
10
+ request(
11
+ :expects => [201],
12
+ :headers => {
13
+ 'Content-Type' => "application/json; charset=UTF-8",
14
+ },
15
+ :method => 'POST',
16
+ :path => "v2/images/#{id}/actions",
17
+ :body => encoded_body,
18
+ )
19
+ end
20
+ end
21
+
22
+ class Mock
23
+ def convert_to_snapshot(id, name)
24
+ response = Excon::Response.new
25
+ response.status = 201
26
+ response.body = {
27
+ 'action' => {
28
+ 'id' => 46592838,
29
+ 'status' => 'completed',
30
+ 'type' => 'convert_to_snapshot',
31
+ 'started_at' => '2015-03-24T19:02:47Z',
32
+ 'completed_at' => '2015-03-24T19:02:47Z',
33
+ 'resource_id' => 11060029,
34
+ 'resource_type' => 'image',
35
+ 'region' => null,
36
+ 'region_slug' => null
37
+ }
38
+ }
39
+ response
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,93 @@
1
+ module Fog
2
+ module Compute
3
+ class DigitalOceanV2
4
+ # noinspection RubyStringKeysInHashInspection
5
+ class Real
6
+
7
+ def create_server(name,
8
+ size,
9
+ image,
10
+ region,
11
+ options = {})
12
+
13
+ create_options = {
14
+ :name => name,
15
+ :region => region,
16
+ :size => size,
17
+ :image => image,
18
+ }
19
+
20
+ [:backups, :ipv6, :private_networking].each do |opt|
21
+ create_options[opt] = !!options[opt] if options[opt]
22
+ end
23
+
24
+ [:user_data, :ssh_keys].each do |opt|
25
+ create_options[opt] = options[opt] if options[opt]
26
+ end
27
+
28
+ encoded_body = Fog::JSON.encode(create_options)
29
+
30
+ request(
31
+ :expects => [202],
32
+ :headers => {
33
+ 'Content-Type' => "application/json; charset=UTF-8",
34
+ },
35
+ :method => 'POST',
36
+ :path => '/v2/droplets',
37
+ :body => encoded_body,
38
+ )
39
+ end
40
+ end
41
+
42
+ # noinspection RubyStringKeysInHashInspection
43
+ class Mock
44
+ def create_server(name,
45
+ size,
46
+ image,
47
+ region,
48
+ options = {})
49
+
50
+ response = Excon::Response.new
51
+ response.status = 202
52
+
53
+ response.body = {
54
+ 'droplet' => {
55
+ 'id' => 3164494,
56
+ 'name' => name,
57
+ 'memory' => 512,
58
+ 'vcpus' => 1,
59
+ 'disk' => 20,
60
+ 'locked' => true,
61
+ 'status' => 'new',
62
+ 'kernel' => {
63
+ 'id' => 2233,
64
+ 'name' => 'Ubuntu 14.04 x64 vmlinuz-3.13.0-37-generic',
65
+ 'version' => '3.13.0-37-generic'
66
+ },
67
+ 'created_at' => '2014-11-14T16:36:31Z',
68
+ 'features' => %w(virtio),
69
+ 'backup_ids' => [],
70
+ 'snapshot_ids' => [],
71
+ 'image' => {},
72
+ 'size' => {},
73
+ 'size_slug' => '512mb',
74
+ 'networks' => {},
75
+ 'region' => {}
76
+ },
77
+ 'links' => {
78
+ 'actions' => [
79
+ {
80
+ 'id' => 36805096,
81
+ 'rel' => "create",
82
+ 'href' => "https://api.digitalocean.com/v2/actions/36805096"
83
+ }
84
+ ]
85
+ }
86
+ }
87
+
88
+ response
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end