fog 1.36.0 → 1.37.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 (305) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/Rakefile +0 -3
  4. data/fog.gemspec +4 -3
  5. data/lib/fog/digitalocean/compute_v2.rb +2 -1
  6. data/lib/fog/digitalocean/examples/getting_started.md +24 -48
  7. data/lib/fog/digitalocean/models/compute_v2/server.rb +4 -0
  8. data/lib/fog/digitalocean/models/compute_v2/ssh_key.rb +17 -16
  9. data/lib/fog/digitalocean/requests/compute_v2/delete_ssh_key.rb +1 -1
  10. data/lib/fog/digitalocean/requests/compute_v2/get_image_details.rb +1 -2
  11. data/lib/fog/openstack.rb +2 -0
  12. data/lib/fog/openstack/common.rb +46 -0
  13. data/lib/fog/openstack/compute.rb +3 -1
  14. data/lib/fog/openstack/core.rb +15 -3
  15. data/lib/fog/openstack/docs/compute.md +1 -1
  16. data/lib/fog/openstack/identity.rb +0 -37
  17. data/lib/fog/openstack/identity_v2.rb +9 -3
  18. data/lib/fog/openstack/identity_v3.rb +8 -3
  19. data/lib/fog/openstack/image.rb +1 -41
  20. data/lib/fog/openstack/image_v1.rb +9 -3
  21. data/lib/fog/openstack/image_v2.rb +7 -2
  22. data/lib/fog/openstack/metering.rb +2 -1
  23. data/lib/fog/openstack/models/compute/server.rb +5 -0
  24. data/lib/fog/openstack/models/identity_v2/user.rb +6 -2
  25. data/lib/fog/openstack/models/volume/availability_zone.rb +1 -4
  26. data/lib/fog/openstack/models/volume/availability_zones.rb +1 -4
  27. data/lib/fog/openstack/models/volume/transfer.rb +1 -9
  28. data/lib/fog/openstack/models/volume/transfers.rb +1 -4
  29. data/lib/fog/openstack/models/volume/volume.rb +6 -18
  30. data/lib/fog/openstack/models/volume/volume_type.rb +0 -3
  31. data/lib/fog/openstack/models/volume/volume_types.rb +1 -4
  32. data/lib/fog/openstack/models/volume/volumes.rb +1 -4
  33. data/lib/fog/openstack/models/volume_v1/availability_zone.rb +15 -0
  34. data/lib/fog/openstack/models/volume_v1/availability_zones.rb +16 -0
  35. data/lib/fog/openstack/models/volume_v1/transfer.rb +18 -0
  36. data/lib/fog/openstack/models/volume_v1/transfers.rb +16 -0
  37. data/lib/fog/openstack/models/volume_v1/volume.rb +26 -0
  38. data/lib/fog/openstack/models/volume_v1/volume_type.rb +16 -0
  39. data/lib/fog/openstack/models/volume_v1/volume_types.rb +16 -0
  40. data/lib/fog/openstack/models/volume_v1/volumes.rb +16 -0
  41. data/lib/fog/openstack/models/volume_v2/availability_zone.rb +15 -0
  42. data/lib/fog/openstack/models/volume_v2/availability_zones.rb +16 -0
  43. data/lib/fog/openstack/models/volume_v2/transfer.rb +19 -0
  44. data/lib/fog/openstack/models/volume_v2/transfers.rb +16 -0
  45. data/lib/fog/openstack/models/volume_v2/volume.rb +27 -0
  46. data/lib/fog/openstack/models/volume_v2/volume_type.rb +16 -0
  47. data/lib/fog/openstack/models/volume_v2/volume_types.rb +16 -0
  48. data/lib/fog/openstack/models/volume_v2/volumes.rb +16 -0
  49. data/lib/fog/openstack/network.rb +2 -1
  50. data/lib/fog/openstack/orchestration.rb +2 -1
  51. data/lib/fog/openstack/planning.rb +2 -1
  52. data/lib/fog/openstack/requests/compute/evacuate_server.rb +26 -0
  53. data/lib/fog/openstack/requests/volume/accept_transfer.rb +8 -10
  54. data/lib/fog/openstack/requests/volume/create_transfer.rb +8 -10
  55. data/lib/fog/openstack/requests/volume/create_volume.rb +9 -40
  56. data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +13 -31
  57. data/lib/fog/openstack/requests/volume/create_volume_type.rb +2 -2
  58. data/lib/fog/openstack/requests/volume/delete_snapshot.rb +2 -2
  59. data/lib/fog/openstack/requests/volume/delete_transfer.rb +1 -3
  60. data/lib/fog/openstack/requests/volume/delete_volume.rb +2 -2
  61. data/lib/fog/openstack/requests/volume/delete_volume_type.rb +2 -2
  62. data/lib/fog/openstack/requests/volume/extend_volume.rb +2 -2
  63. data/lib/fog/openstack/requests/volume/get_quota.rb +2 -2
  64. data/lib/fog/openstack/requests/volume/get_quota_defaults.rb +7 -7
  65. data/lib/fog/openstack/requests/volume/get_quota_usage.rb +2 -2
  66. data/lib/fog/openstack/requests/volume/get_snapshot_details.rb +1 -20
  67. data/lib/fog/openstack/requests/volume/get_transfer_details.rb +1 -1
  68. data/lib/fog/openstack/requests/volume/get_volume_details.rb +1 -22
  69. data/lib/fog/openstack/requests/volume/get_volume_type_details.rb +2 -2
  70. data/lib/fog/openstack/requests/volume/list_snapshots.rb +2 -2
  71. data/lib/fog/openstack/requests/volume/list_snapshots_detailed.rb +2 -2
  72. data/lib/fog/openstack/requests/volume/list_transfers.rb +1 -1
  73. data/lib/fog/openstack/requests/volume/list_transfers_detailed.rb +1 -1
  74. data/lib/fog/openstack/requests/volume/list_volume_types.rb +2 -2
  75. data/lib/fog/openstack/requests/volume/list_volumes.rb +1 -34
  76. data/lib/fog/openstack/requests/volume/list_volumes_detailed.rb +1 -34
  77. data/lib/fog/openstack/requests/volume/list_zones.rb +2 -2
  78. data/lib/fog/openstack/requests/volume/set_tenant.rb +2 -2
  79. data/lib/fog/openstack/requests/volume/update_quota.rb +2 -2
  80. data/lib/fog/openstack/requests/volume/update_volume_type.rb +2 -2
  81. data/lib/fog/openstack/requests/volume_v1/accept_transfer.rb +2 -0
  82. data/lib/fog/openstack/requests/volume_v1/create_transfer.rb +2 -0
  83. data/lib/fog/openstack/requests/volume_v1/create_volume.rb +49 -0
  84. data/lib/fog/openstack/requests/volume_v1/create_volume_snapshot.rb +44 -0
  85. data/lib/fog/openstack/requests/volume_v1/create_volume_type.rb +2 -0
  86. data/lib/fog/openstack/requests/volume_v1/delete_snapshot.rb +2 -0
  87. data/lib/fog/openstack/requests/volume_v1/delete_transfer.rb +2 -0
  88. data/lib/fog/openstack/requests/volume_v1/delete_volume.rb +2 -0
  89. data/lib/fog/openstack/requests/volume_v1/delete_volume_type.rb +2 -0
  90. data/lib/fog/openstack/requests/volume_v1/extend_volume.rb +2 -0
  91. data/lib/fog/openstack/requests/volume_v1/get_quota.rb +2 -0
  92. data/lib/fog/openstack/requests/volume_v1/get_quota_defaults.rb +2 -0
  93. data/lib/fog/openstack/requests/volume_v1/get_quota_usage.rb +2 -0
  94. data/lib/fog/openstack/requests/volume_v1/get_snapshot_details.rb +32 -0
  95. data/lib/fog/openstack/requests/volume_v1/get_transfer_details.rb +2 -0
  96. data/lib/fog/openstack/requests/volume_v1/get_volume_details.rb +35 -0
  97. data/lib/fog/openstack/requests/volume_v1/get_volume_type_details.rb +2 -0
  98. data/lib/fog/openstack/requests/volume_v1/list_snapshots.rb +2 -0
  99. data/lib/fog/openstack/requests/volume_v1/list_snapshots_detailed.rb +2 -0
  100. data/lib/fog/openstack/requests/volume_v1/list_transfers.rb +2 -0
  101. data/lib/fog/openstack/requests/volume_v1/list_transfers_detailed.rb +2 -0
  102. data/lib/fog/openstack/requests/volume_v1/list_volume_types.rb +2 -0
  103. data/lib/fog/openstack/requests/volume_v1/list_volumes.rb +46 -0
  104. data/lib/fog/openstack/requests/volume_v1/list_volumes_detailed.rb +46 -0
  105. data/lib/fog/openstack/requests/volume_v1/list_zones.rb +2 -0
  106. data/lib/fog/openstack/requests/volume_v1/real.rb +11 -0
  107. data/lib/fog/openstack/requests/volume_v1/real_mock.rb +14 -0
  108. data/lib/fog/openstack/requests/volume_v1/set_tenant.rb +2 -0
  109. data/lib/fog/openstack/requests/volume_v1/update_quota.rb +2 -0
  110. data/lib/fog/openstack/requests/volume_v2/accept_transfer.rb +2 -0
  111. data/lib/fog/openstack/requests/volume_v2/create_transfer.rb +2 -0
  112. data/lib/fog/openstack/requests/volume_v2/create_volume.rb +49 -0
  113. data/lib/fog/openstack/requests/volume_v2/create_volume_snapshot.rb +43 -0
  114. data/lib/fog/openstack/requests/volume_v2/create_volume_type.rb +2 -0
  115. data/lib/fog/openstack/requests/volume_v2/delete_snapshot.rb +2 -0
  116. data/lib/fog/openstack/requests/volume_v2/delete_transfer.rb +2 -0
  117. data/lib/fog/openstack/requests/volume_v2/delete_volume.rb +2 -0
  118. data/lib/fog/openstack/requests/volume_v2/delete_volume_type.rb +2 -0
  119. data/lib/fog/openstack/requests/volume_v2/extend_volume.rb +2 -0
  120. data/lib/fog/openstack/requests/volume_v2/get_quota.rb +2 -0
  121. data/lib/fog/openstack/requests/volume_v2/get_quota_defaults.rb +2 -0
  122. data/lib/fog/openstack/requests/volume_v2/get_quota_usage.rb +2 -0
  123. data/lib/fog/openstack/requests/volume_v2/get_snapshot_details.rb +32 -0
  124. data/lib/fog/openstack/requests/volume_v2/get_transfer_details.rb +2 -0
  125. data/lib/fog/openstack/requests/volume_v2/get_volume_details.rb +35 -0
  126. data/lib/fog/openstack/requests/volume_v2/get_volume_type_details.rb +2 -0
  127. data/lib/fog/openstack/requests/volume_v2/list_snapshots.rb +2 -0
  128. data/lib/fog/openstack/requests/volume_v2/list_snapshots_detailed.rb +2 -0
  129. data/lib/fog/openstack/requests/volume_v2/list_transfers.rb +2 -0
  130. data/lib/fog/openstack/requests/volume_v2/list_transfers_detailed.rb +2 -0
  131. data/lib/fog/openstack/requests/volume_v2/list_volume_types.rb +2 -0
  132. data/lib/fog/openstack/requests/volume_v2/list_volumes.rb +46 -0
  133. data/lib/fog/openstack/requests/volume_v2/list_volumes_detailed.rb +46 -0
  134. data/lib/fog/openstack/requests/volume_v2/list_zones.rb +2 -0
  135. data/lib/fog/openstack/requests/volume_v2/real.rb +11 -0
  136. data/lib/fog/openstack/requests/volume_v2/real_mock.rb +14 -0
  137. data/lib/fog/openstack/requests/volume_v2/set_tenant.rb +2 -0
  138. data/lib/fog/openstack/requests/volume_v2/update_quota.rb +2 -0
  139. data/lib/fog/openstack/requests/volume_v2/update_volume_type.rb +2 -0
  140. data/lib/fog/openstack/storage.rb +2 -1
  141. data/lib/fog/openstack/volume.rb +21 -176
  142. data/lib/fog/openstack/volume_v1.rb +163 -0
  143. data/lib/fog/openstack/volume_v2.rb +164 -0
  144. data/lib/fog/rackspace/compute_v2.rb +1 -0
  145. data/lib/fog/rackspace/docs/compute_v2.md +1 -1
  146. data/lib/fog/rackspace/models/compute_v2/server.rb +14 -0
  147. data/lib/fog/rackspace/requests/compute_v2/get_vnc_console.rb +45 -0
  148. data/lib/fog/rackspace/requests/storage/put_container.rb +10 -6
  149. data/lib/fog/vcloud_director/compute.rb +18 -2
  150. data/lib/fog/vcloud_director/models/compute/disks.rb +6 -0
  151. data/lib/fog/vcloud_director/models/compute/networks.rb +7 -2
  152. data/lib/fog/vcloud_director/models/compute/vdc.rb +5 -0
  153. data/lib/fog/vcloud_director/models/compute/vm.rb +15 -1
  154. data/lib/fog/vcloud_director/parsers/compute/vm.rb +4 -0
  155. data/lib/fog/vcloud_director/parsers/compute/vms.rb +4 -0
  156. data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +30 -0
  157. data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +24 -3
  158. data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +23 -0
  159. data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +11 -0
  160. data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +1 -0
  161. data/lib/fog/vcloud_director/requests/compute/get_vm.rb +46 -0
  162. data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +20 -0
  163. data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +25 -0
  164. data/lib/fog/vcloud_director/requests/compute/get_vms.rb +13 -0
  165. data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +70 -0
  166. data/lib/fog/vcloud_director/requests/compute/post_power_on_vapp.rb +35 -0
  167. data/lib/fog/vcloud_director/requests/compute/post_reconfigure_vm.rb +118 -0
  168. data/lib/fog/vcloud_director/requests/compute/post_update_vapp_metadata.rb +34 -0
  169. data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +2 -1
  170. data/lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb +31 -0
  171. data/lib/fog/version.rb +1 -1
  172. data/lib/tasks/changelog_task.rb +1 -0
  173. data/spec/fog/openstack/shared_context.rb +11 -2
  174. data/spec/fog/openstack/volume/common_setup.yml +74 -50
  175. data/spec/fog/openstack/volume/volume_crud.yml +286 -236
  176. data/spec/fog/openstack/volume/volume_extend.yml +270 -363
  177. data/spec/fog/openstack/volume/volume_transfer_and_accept.yml +418 -424
  178. data/spec/fog/openstack/volume/volume_transfer_and_delete.yml +292 -321
  179. data/spec/fog/openstack/volume/volume_type_read.yml +30 -36
  180. data/spec/fog/openstack/volume_spec.rb +251 -224
  181. data/spec/fog/openstack/volume_v1/common_setup.yml +100 -0
  182. data/spec/fog/openstack/volume_v1/volume_crud.yml +535 -0
  183. data/spec/fog/openstack/volume_v1/volume_extend.yml +596 -0
  184. data/spec/fog/openstack/volume_v1/volume_transfer_and_accept.yml +1010 -0
  185. data/spec/fog/openstack/volume_v1/volume_transfer_and_delete.yml +645 -0
  186. data/spec/fog/openstack/volume_v1/volume_type_read.yml +114 -0
  187. data/spec/fog/openstack/volume_v2/common_setup.yml +100 -0
  188. data/spec/fog/openstack/volume_v2/volume_crud.yml +611 -0
  189. data/spec/fog/openstack/volume_v2/volume_extend.yml +669 -0
  190. data/spec/fog/openstack/volume_v2/volume_transfer_and_accept.yml +1072 -0
  191. data/spec/fog/openstack/volume_v2/volume_transfer_and_delete.yml +666 -0
  192. data/spec/fog/openstack/volume_v2/volume_type_read.yml +114 -0
  193. data/tests/helpers/mock_helper.rb +0 -4
  194. data/tests/openstack/authenticate_tests.rb +4 -0
  195. data/tests/openstack/volume_tests.rb +4 -0
  196. data/tests/rackspace/requests/compute_v2/server_tests.rb +4 -0
  197. metadata +135 -152
  198. data/lib/fog/bin/vsphere.rb +0 -28
  199. data/lib/fog/vsphere.rb +0 -1
  200. data/lib/fog/vsphere/compute.rb +0 -474
  201. data/lib/fog/vsphere/core.rb +0 -39
  202. data/lib/fog/vsphere/models/compute/cluster.rb +0 -28
  203. data/lib/fog/vsphere/models/compute/clusters.rb +0 -23
  204. data/lib/fog/vsphere/models/compute/customfield.rb +0 -16
  205. data/lib/fog/vsphere/models/compute/customfields.rb +0 -24
  206. data/lib/fog/vsphere/models/compute/customvalue.rb +0 -14
  207. data/lib/fog/vsphere/models/compute/customvalues.rb +0 -34
  208. data/lib/fog/vsphere/models/compute/datacenter.rb +0 -44
  209. data/lib/fog/vsphere/models/compute/datacenters.rb +0 -20
  210. data/lib/fog/vsphere/models/compute/datastore.rb +0 -21
  211. data/lib/fog/vsphere/models/compute/datastores.rb +0 -22
  212. data/lib/fog/vsphere/models/compute/folder.rb +0 -24
  213. data/lib/fog/vsphere/models/compute/folders.rb +0 -24
  214. data/lib/fog/vsphere/models/compute/interface.rb +0 -91
  215. data/lib/fog/vsphere/models/compute/interfaces.rb +0 -67
  216. data/lib/fog/vsphere/models/compute/interfacetype.rb +0 -22
  217. data/lib/fog/vsphere/models/compute/interfacetypes.rb +0 -35
  218. data/lib/fog/vsphere/models/compute/network.rb +0 -18
  219. data/lib/fog/vsphere/models/compute/networks.rb +0 -23
  220. data/lib/fog/vsphere/models/compute/process.rb +0 -18
  221. data/lib/fog/vsphere/models/compute/resource_pool.rb +0 -19
  222. data/lib/fog/vsphere/models/compute/resource_pools.rb +0 -23
  223. data/lib/fog/vsphere/models/compute/scsicontroller.rb +0 -16
  224. data/lib/fog/vsphere/models/compute/server.rb +0 -325
  225. data/lib/fog/vsphere/models/compute/servers.rb +0 -37
  226. data/lib/fog/vsphere/models/compute/servertype.rb +0 -36
  227. data/lib/fog/vsphere/models/compute/servertypes.rb +0 -24
  228. data/lib/fog/vsphere/models/compute/snapshot.rb +0 -35
  229. data/lib/fog/vsphere/models/compute/snapshots.rb +0 -27
  230. data/lib/fog/vsphere/models/compute/template.rb +0 -11
  231. data/lib/fog/vsphere/models/compute/templates.rb +0 -20
  232. data/lib/fog/vsphere/models/compute/volume.rb +0 -99
  233. data/lib/fog/vsphere/models/compute/volumes.rb +0 -54
  234. data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +0 -65
  235. data/lib/fog/vsphere/requests/compute/create_folder.rb +0 -22
  236. data/lib/fog/vsphere/requests/compute/create_vm.rb +0 -227
  237. data/lib/fog/vsphere/requests/compute/current_time.rb +0 -18
  238. data/lib/fog/vsphere/requests/compute/get_cluster.rb +0 -25
  239. data/lib/fog/vsphere/requests/compute/get_compute_resource.rb +0 -41
  240. data/lib/fog/vsphere/requests/compute/get_datacenter.rb +0 -31
  241. data/lib/fog/vsphere/requests/compute/get_datastore.rb +0 -30
  242. data/lib/fog/vsphere/requests/compute/get_folder.rb +0 -74
  243. data/lib/fog/vsphere/requests/compute/get_interface_type.rb +0 -15
  244. data/lib/fog/vsphere/requests/compute/get_network.rb +0 -59
  245. data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +0 -26
  246. data/lib/fog/vsphere/requests/compute/get_server_type.rb +0 -32
  247. data/lib/fog/vsphere/requests/compute/get_template.rb +0 -16
  248. data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +0 -57
  249. data/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb +0 -26
  250. data/lib/fog/vsphere/requests/compute/list_child_snapshots.rb +0 -71
  251. data/lib/fog/vsphere/requests/compute/list_clusters.rb +0 -72
  252. data/lib/fog/vsphere/requests/compute/list_compute_resources.rb +0 -92
  253. data/lib/fog/vsphere/requests/compute/list_customfields.rb +0 -21
  254. data/lib/fog/vsphere/requests/compute/list_datacenters.rb +0 -53
  255. data/lib/fog/vsphere/requests/compute/list_datastores.rb +0 -40
  256. data/lib/fog/vsphere/requests/compute/list_folders.rb +0 -44
  257. data/lib/fog/vsphere/requests/compute/list_interface_types.rb +0 -25
  258. data/lib/fog/vsphere/requests/compute/list_networks.rb +0 -38
  259. data/lib/fog/vsphere/requests/compute/list_processes.rb +0 -41
  260. data/lib/fog/vsphere/requests/compute/list_resource_pools.rb +0 -38
  261. data/lib/fog/vsphere/requests/compute/list_server_types.rb +0 -54
  262. data/lib/fog/vsphere/requests/compute/list_templates.rb +0 -48
  263. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +0 -80
  264. data/lib/fog/vsphere/requests/compute/list_vm_customvalues.rb +0 -20
  265. data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +0 -63
  266. data/lib/fog/vsphere/requests/compute/list_vm_snapshots.rb +0 -66
  267. data/lib/fog/vsphere/requests/compute/list_vm_volumes.rb +0 -52
  268. data/lib/fog/vsphere/requests/compute/modify_vm_interface.rb +0 -59
  269. data/lib/fog/vsphere/requests/compute/modify_vm_volume.rb +0 -25
  270. data/lib/fog/vsphere/requests/compute/revert_to_snapshot.rb +0 -30
  271. data/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb +0 -17
  272. data/lib/fog/vsphere/requests/compute/vm_clone.rb +0 -727
  273. data/lib/fog/vsphere/requests/compute/vm_config_vnc.rb +0 -45
  274. data/lib/fog/vsphere/requests/compute/vm_destroy.rb +0 -23
  275. data/lib/fog/vsphere/requests/compute/vm_execute.rb +0 -47
  276. data/lib/fog/vsphere/requests/compute/vm_migrate.rb +0 -33
  277. data/lib/fog/vsphere/requests/compute/vm_power_off.rb +0 -39
  278. data/lib/fog/vsphere/requests/compute/vm_power_on.rb +0 -26
  279. data/lib/fog/vsphere/requests/compute/vm_reboot.rb +0 -31
  280. data/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb +0 -23
  281. data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +0 -24
  282. data/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb +0 -23
  283. data/lib/fog/vsphere/requests/compute/vm_take_snapshot.rb +0 -37
  284. data/tests/vsphere/compute_tests.rb +0 -53
  285. data/tests/vsphere/models/compute/server_tests.rb +0 -70
  286. data/tests/vsphere/models/compute/servers_tests.rb +0 -15
  287. data/tests/vsphere/requests/compute/current_time_tests.rb +0 -12
  288. data/tests/vsphere/requests/compute/get_network_tests.rb +0 -48
  289. data/tests/vsphere/requests/compute/list_child_snapshots_tests.rb +0 -10
  290. data/tests/vsphere/requests/compute/list_clusters_tests.rb +0 -11
  291. data/tests/vsphere/requests/compute/list_virtual_machines_tests.rb +0 -38
  292. data/tests/vsphere/requests/compute/list_vm_snapshots_tests.rb +0 -10
  293. data/tests/vsphere/requests/compute/revert_to_snapshot_tests.rb +0 -15
  294. data/tests/vsphere/requests/compute/set_vm_customvalue_tests.rb +0 -20
  295. data/tests/vsphere/requests/compute/vm_clone_tests.rb +0 -50
  296. data/tests/vsphere/requests/compute/vm_config_vnc_tests.rb +0 -19
  297. data/tests/vsphere/requests/compute/vm_destroy_tests.rb +0 -17
  298. data/tests/vsphere/requests/compute/vm_migrate_tests.rb +0 -16
  299. data/tests/vsphere/requests/compute/vm_power_off_tests.rb +0 -26
  300. data/tests/vsphere/requests/compute/vm_power_on_tests.rb +0 -17
  301. data/tests/vsphere/requests/compute/vm_reboot_tests.rb +0 -26
  302. data/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb +0 -19
  303. data/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb +0 -19
  304. data/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb +0 -19
  305. data/tests/vsphere/requests/compute/vm_take_snapshot_tests.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f9cedf56d775bede91d6a668e2f9914ca6c70ba0
4
- data.tar.gz: 520ffb04055ee86be3f87d1b235e70e362cb1d58
3
+ metadata.gz: 738eb34cd16f667cbcace3db1cd5b9ecf43b2523
4
+ data.tar.gz: d59b0584e317418f4ac05f407742325d58023791
5
5
  SHA512:
6
- metadata.gz: b58ecca0b95feb6a2a25295c3f218fc08b8f4f4cb198d4b6048684300ee74b4270e1ce666449c1974cca1b3fdaf1654a9408976bd21000228d5e061dbb1b8f0b
7
- data.tar.gz: b0f5b97ad7da4e7926305cd71ca9f13bdfa94ea68f0c82a9cb65a8ffa882585320ee747d3544d18f089de4319f990170c5e10eca9820ba5bc4b0c16e7ad7eba2
6
+ metadata.gz: 87d75d2c9fe6bf483461cf2e675ef78a607b9755ab0135cea41afddb043923eec526dd9412641d34d6b4fff7b20e66f0a6000c354f85d473bd17d2e3741d490a
7
+ data.tar.gz: 78b931fa6b3fd7cb5f839c3b33001f8d98dfc5f7c50dda0bf05d06298e0cc3e5afd33400baf7e965ae98aa145b7f3fda12b78c0a48678f4fb998228a15a2bc86
data/CHANGELOG.md CHANGED
@@ -1,3 +1,64 @@
1
+ ## 1.37.0 12/22/2015
2
+ *Hash* f7cf6b7c6499ab2a58bb7fe6848363d7cc459d3a
3
+
4
+ Statistic | Value
5
+ ------------- | --------:
6
+ Collaborators | 2
7
+ Downloads | 13380838
8
+ Forks | 1530
9
+ Open Issues | 89
10
+ Watchers | 3729
11
+
12
+ **MVP!** Rich Daley
13
+
14
+ #### [misc]
15
+ * Remove vSphere provider. thanks Garcia
16
+ * Remove lib/fog/bin/vsphere. thanks Garcia
17
+ * Use fog-vsphere ~> 0.2. thanks Garcia
18
+ * OpenStack fix Cinder v2 typo. thanks Ladislav Smola
19
+ * OpenStack add server evacuate action. thanks Ladislav Smola
20
+ * Fix DigitalOceanV2::SshKey misplaced #save, #destroy and #update methods. thanks Manuel Franco
21
+ * Enforce no slash in container name. thanks Matt Darby
22
+ * Update API path for deleting SSH keys. thanks Michael Borohovski
23
+ * Upgrade version of fog-vsphere to 0.4. Fixes #3784. thanks Michael Borohovski
24
+ * Updates Getting Started for DigitalOcean. thanks Peter Souter
25
+ * Add some mocks for VM (partial) and Network. thanks Rich Daley
26
+ * Add loads more mocks to the vcloud_director backend. thanks Rich Daley
27
+ * Add mocks for disks. thanks Rich Daley
28
+ * Add mock support for tags. thanks Rich Daley
29
+ * Don't pass AdminPassword if AdminPasswordAuto is true (causes an exception). thanks Rich Daley
30
+ * Remove erroneous file. thanks Rich Daley
31
+ * Add a barebones :post_reconfigure_vm and a Vm#reconfigure that uses it. thanks Rich Daley
32
+ * Add a mock and fix infinite loop issue. thanks Rich Daley
33
+ * Set description in the mocks ahead of separate PR. thanks Rich Daley
34
+ * Add support for VM descriptions. thanks Rich Daley
35
+ * Add a #storage_only to disks to return only those disks that are actually disks. thanks Rich Daley
36
+ * Remove description if it hasn't changed. thanks Rich Daley
37
+ * Make comment more explicit about OVF. thanks Rich Daley
38
+ * Add vdc.networks. thanks Rich Daley
39
+ * Fix bogus requires. thanks Rich Daley
40
+ * Add a mock for put_network_connection_system_section_vapp and fix the mock for get_vm_network to get the VM ID the same way the parser does. thanks Rich Daley
41
+ * Add mock for post_power_on_vapp. thanks Rich Daley
42
+ * Add mock for delete_vapp. thanks Rich Daley
43
+ * According to doc, only the username is mandatory. thanks Sean Handley
44
+ * If the management URL has no path, use the one in the auth URI. thanks Sean Handley
45
+ * Revert "If the management URL has no path, use the one in the auth URI.". thanks Sean Handley
46
+ * Workaround for installs using both v2 and v3. thanks Sean Handley
47
+ * Fix #3785 Missing image details for digitalocean version 2 api. thanks Suraj Shirvankar
48
+ * Added method locked? to check if the machine is currently locked with another operation. thanks Suraj Shirvankar
49
+ * Add openstack_temp_url_key to the list of recognized options. thanks Yauheni Kryudziuk
50
+ * rely on fog-xml nokogiri dep. thanks geemus
51
+ * add mime-types as dev dependency. thanks geemus
52
+ * Update compute.md. thanks losingle
53
+
54
+ #### [openstack]
55
+ * volume API v2 implementation. thanks Darren Hague
56
+ * Revert over-eager optimisation in v2 authentication case. thanks Darren Hague
57
+
58
+ #### [rackspace]
59
+ * Add support for get_vnc_console request to compute_v2. thanks Dusty Jones
60
+
61
+
1
62
  ## 1.36.0 11/16/2015
2
63
  *Hash* e7cd19696284633d4363993e2e3fda41384b7d58
3
64
 
data/Rakefile CHANGED
@@ -69,9 +69,6 @@ namespace :test do
69
69
  task :travis => [:openstack_specs] do
70
70
  sh("export FOG_MOCK=#{mock} && bundle exec shindont")
71
71
  end
72
- task :vsphere do
73
- sh("export FOG_MOCK=#{mock} && bundle exec shindont tests/vsphere")
74
- end
75
72
  task :openvz do
76
73
  sh("export FOG_MOCK=#{mock} && bundle exec shindont tests/openvz")
77
74
  end
data/fog.gemspec CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |s|
11
11
  ## If your rubyforge_project name is different, then edit it and comment out
12
12
  ## the sub! line in the Rakefile
13
13
  s.name = "fog"
14
- s.version = "1.36.0"
15
- s.date = "2015-11-16"
14
+ s.version = "1.37.0"
15
+ s.date = "2015-12-22"
16
16
  s.rubyforge_project = "fog"
17
17
 
18
18
  ## Make sure your summary is short. The description may be as long
@@ -49,7 +49,6 @@ Gem::Specification.new do |s|
49
49
  s.add_dependency("fog-xml", "~> 0.1.1")
50
50
 
51
51
  s.add_dependency("ipaddress", "~> 0.5")
52
- s.add_dependency("nokogiri", "~> 1.5", ">= 1.5.11")
53
52
 
54
53
  # Modular providers (please keep sorted)
55
54
  s.add_dependency("fog-atmos")
@@ -70,11 +69,13 @@ Gem::Specification.new do |s|
70
69
  s.add_dependency("fog-terremark")
71
70
  s.add_dependency("fog-vmfusion")
72
71
  s.add_dependency("fog-voxel")
72
+ s.add_dependency("fog-vsphere", ">= 0.4.0")
73
73
  s.add_dependency("fog-xenserver")
74
74
  s.add_dependency("fog-aliyun",">= 0.1.0")
75
75
 
76
76
  s.add_development_dependency("docker-api", ">= 1.13.6")
77
77
  s.add_development_dependency("fission")
78
+ s.add_development_dependency("mime-types")
78
79
  s.add_development_dependency("minitest")
79
80
  s.add_development_dependency("minitest-stub-const")
80
81
  s.add_development_dependency("opennebula")
@@ -27,6 +27,7 @@ module Fog
27
27
  request :enable_ipv6
28
28
  request :enable_private_networking
29
29
  request :get_droplet_action
30
+ request :get_image_details
30
31
  request :get_server_details
31
32
  request :get_ssh_key
32
33
  request :list_droplet_actions
@@ -105,4 +106,4 @@ module Fog
105
106
  end
106
107
  end
107
108
  end
108
- end
109
+ end
@@ -1,11 +1,10 @@
1
1
  # Getting started: the compute service
2
2
 
3
- You'll need a DigitalOcean account and API key to use this provider.
3
+ You'll need a DigitalOcean account and an API token to use this provider.
4
4
 
5
- Get one from https://cloud.digitalocean.com/api_access (fog currently uses the v1 API)
6
-
7
- Write down the Client Key and API Key, you'll need both to use the service.
5
+ Get one from https://cloud.digitalocean.com/settings/tokens/new
8
6
 
7
+ Write down the Access Token.
9
8
 
10
9
  ## Connecting, retrieving and managing server objects
11
10
 
@@ -21,8 +20,8 @@ require 'fog'
21
20
 
22
21
  docean = Fog::Compute.new({
23
22
  :provider => 'DigitalOcean',
24
- :digitalocean_api_key => 'poiuweoruwoeiuroiwuer', # your API key here
25
- :digitalocean_client_id => 'lkjasoidfuoiu' # your client key here
23
+ :version => 'V2',
24
+ :digitalocean_token => 'poiuweoruwoeiuroiwuer', # your Access Token here
26
25
  })
27
26
  ```
28
27
 
@@ -43,8 +42,9 @@ Listing all keys:
43
42
 
44
43
  ```ruby
45
44
  docean.ssh_keys.each do | key |
46
- key.name
47
- key.ssh_pub_key
45
+ puts key.name
46
+ puts key.public_key
47
+ puts key.id
48
48
  end
49
49
  ```
50
50
 
@@ -53,24 +53,6 @@ Destroying a key:
53
53
  ```ruby
54
54
  docean.ssh_keys.destroy(:id => '27100')
55
55
  ```
56
-
57
- ## Boostrapping a server
58
-
59
- Fog can be used to bootstrap a server, which will create an SSH key to be assigned to a server at boot.
60
-
61
- ```ruby
62
- server = connection.servers.bootstrap({
63
- :name => 'test',
64
- :image_id => 1505447,
65
- :size_id => 33,
66
- :region_id => 4,
67
- :flavor_id => 66,
68
- :public_key_path => File.expand_path('~/.ssh/id_rsa.pub'),
69
- :private_key_path => File.expand_path('~/.ssh/id_rsa'),
70
- })
71
- server.wait_for { ready? }
72
- ```
73
-
74
56
  ## Listing servers
75
57
 
76
58
  Listing servers and attributes:
@@ -78,13 +60,12 @@ Listing servers and attributes:
78
60
  ```ruby
79
61
  docean.servers.each do |server|
80
62
  # remember, servers are droplets
81
- server.id
82
- server.name
83
- server.state
84
- server.backups_enabled
85
- server.image_id
86
- server.flavor_id # server 'size' in DigitalOcean's API parlance
87
- server.region_id
63
+ puts server.id
64
+ puts server.name
65
+ puts server.status
66
+ puts (server.image['slug'] || server.image['name']) # slug is only for public images, private images use name
67
+ puts server.size['slug']
68
+ puts server.region['slug']
88
69
  end
89
70
  ```
90
71
 
@@ -94,12 +75,12 @@ Creating a new server (droplet):
94
75
 
95
76
  ```ruby
96
77
  server = docean.servers.create :name => 'foobar',
97
- # use the first image listed
98
- :image_id => docean.images.first.id,
99
- # use the first flavor listed
100
- :flavor_id => docean.flavors.first.id,
78
+ # use the last image listed
79
+ :image => docean.images.last.id,
80
+ # use the first flavor (aka size) listed
81
+ :size => docean.flavors.first.slug,
101
82
  # use the first region listed
102
- :region_id => docean.regions.first.id
83
+ :region => docean.regions.first.slug
103
84
  ```
104
85
 
105
86
  The server is automatically started after that.
@@ -109,21 +90,18 @@ but you can easily list them too, and then decide:
109
90
 
110
91
  ```ruby
111
92
  docean.images.each do |image|
112
- image.id
113
- image.name
114
- image.distribution
93
+ puts image.id
94
+ puts image.name
95
+ puts image.distribution
115
96
  end
116
97
 
117
98
  docean.flavors.each do |flavor|
118
- flavor.id
119
- flavor.name
99
+ puts flavor.slug
120
100
  end
121
101
 
122
102
  docean.regions.each do |region|
123
- region.id
124
- region.name
103
+ puts region.slug
125
104
  end
126
-
127
105
  ```
128
106
 
129
107
  Rebooting a server:
@@ -144,5 +122,3 @@ Destroying the server:
144
122
  ```ruby
145
123
  server.destroy
146
124
  ```
147
-
148
-
@@ -76,6 +76,10 @@ module Fog
76
76
  status == 'active'
77
77
  end
78
78
 
79
+ def locked?
80
+ locked
81
+ end
82
+
79
83
  def actions
80
84
  requires :id
81
85
  response = service.list_droplet_actions id
@@ -6,25 +6,26 @@ module Fog
6
6
  attribute :fingerprint
7
7
  attribute :public_key
8
8
  attribute :name
9
- end
10
9
 
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
10
+ def save
11
+ requires :name, :public_key
12
+ merge_attributes(service.create_ssh_key(name, public_key).body['ssh_key'])
13
+ true
14
+ end
16
15
 
17
- def destroy
18
- requires :id
19
- service.delete_ssh_key id
20
- end
16
+ def destroy
17
+ requires :id
18
+ service.delete_ssh_key id
19
+ end
20
+
21
+ def update
22
+ requires :id, :name
23
+ data = service.update_server(id, name)
24
+ merge_attributes(data.body['ssh_key'])
25
+ true
26
+ end
21
27
 
22
- def update
23
- requires :id, :name
24
- data = service.update_server(id, name)
25
- merge_attributes(data.body['ssh_key'])
26
- true
27
28
  end
28
29
  end
29
30
  end
30
- end
31
+ end
@@ -10,7 +10,7 @@ module Fog
10
10
  'Content-Type' => "application/json; charset=UTF-8",
11
11
  },
12
12
  :method => 'DELETE',
13
- :path => "/v2/account/keys#{id}",
13
+ :path => "/v2/account/keys/#{id}",
14
14
  )
15
15
  end
16
16
  end
@@ -6,7 +6,7 @@ module Fog
6
6
  request(
7
7
  :expects => [200],
8
8
  :method => 'GET',
9
- :path => "/v2/images/#{server_id}"
9
+ :path => "/v2/images/#{image_id}"
10
10
  )
11
11
  end
12
12
  end
@@ -33,7 +33,6 @@ module Fog
33
33
  'min_disk_size' => 20
34
34
  }
35
35
  }
36
- }
37
36
 
38
37
  response
39
38
  end
data/lib/fog/openstack.rb CHANGED
@@ -9,5 +9,7 @@ require 'fog/openstack/network'
9
9
  require 'fog/openstack/orchestration'
10
10
  require 'fog/openstack/storage'
11
11
  require 'fog/openstack/volume'
12
+ require 'fog/openstack/volume_v1'
13
+ require 'fog/openstack/volume_v2'
12
14
  require 'fog/openstack/baremetal'
13
15
  require 'fog/openstack/planning'
@@ -0,0 +1,46 @@
1
+ require 'fog/openstack/core'
2
+
3
+ module Fog
4
+ module OpenStack
5
+ module Common
6
+ attr_reader :unscoped_token
7
+
8
+ include Fog::OpenStack::Core
9
+
10
+ def request(params)
11
+ retried = false
12
+ begin
13
+ std_headers = {
14
+ 'Content-Type' => 'application/json',
15
+ 'Accept' => 'application/json',
16
+ 'X-Auth-Token' => @auth_token
17
+ }
18
+ param_headers = params.fetch(:headers, {})
19
+
20
+ response = @connection.request(params.merge({
21
+ :headers => std_headers.merge(param_headers),
22
+ :path => "#{@path}/#{params[:path]}"
23
+ }))
24
+ rescue Excon::Errors::Unauthorized => error
25
+ raise if retried
26
+ retried = true
27
+
28
+ @openstack_must_reauthenticate = true
29
+ authenticate
30
+ retry
31
+ rescue Excon::Errors::HTTPStatusError => error
32
+ raise case error
33
+ when Excon::Errors::NotFound
34
+ self.class.not_found_class.slurp(error)
35
+ else
36
+ error
37
+ end
38
+ end
39
+ unless response.body.empty?
40
+ response.body = Fog::JSON.decode(response.body) unless params[:raw_body]
41
+ end
42
+ response
43
+ end
44
+ end
45
+ end
46
+ end
@@ -12,7 +12,8 @@ module Fog
12
12
  :openstack_endpoint_type,
13
13
  :openstack_project_name, :openstack_project_id,
14
14
  :openstack_project_domain, :openstack_user_domain, :openstack_domain_name,
15
- :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id
15
+ :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id,
16
+ :openstack_identity_prefix
16
17
 
17
18
  ## MODELS
18
19
  #
@@ -105,6 +106,7 @@ module Fog
105
106
  request :get_vnc_console
106
107
  request :live_migrate_server
107
108
  request :migrate_server
109
+ request :evacuate_server
108
110
 
109
111
  # Service CRUD
110
112
  request :list_services
@@ -67,6 +67,7 @@ module Fog
67
67
  attr_reader :openstack_domain_id
68
68
  attr_reader :openstack_user_domain_id
69
69
  attr_reader :openstack_project_domain_id
70
+ attr_reader :openstack_identity_prefix
70
71
 
71
72
  def initialize_identity options
72
73
  # Create @openstack_* instance variables from all :openstack_* options
@@ -154,6 +155,13 @@ module Fog
154
155
  @port = @openstack_management_uri.port
155
156
  @scheme = @openstack_management_uri.scheme
156
157
 
158
+ # Not all implementations have identity service in the catalog
159
+ if @openstack_identity_public_endpoint || @openstack_management_url
160
+ @identity_connection = Fog::Core::Connection.new(
161
+ @openstack_identity_public_endpoint || @openstack_management_url,
162
+ false, @connection_options)
163
+ end
164
+
157
165
  true
158
166
  end
159
167
  end
@@ -409,7 +417,7 @@ module Fog
409
417
  auth_token = options[:openstack_auth_token] || options[:unscoped_token]
410
418
  uri = options[:openstack_auth_uri]
411
419
 
412
- @identity_connection = Fog::Core::Connection.new(uri.to_s, false, connection_options)
420
+ identity_v2_connection = Fog::Core::Connection.new(uri.to_s, false, connection_options)
413
421
  request_body = {:auth => Hash.new}
414
422
 
415
423
  if auth_token
@@ -424,7 +432,7 @@ module Fog
424
432
  end
425
433
  request_body[:auth][:tenantName] = tenant_name if tenant_name
426
434
 
427
- response = @identity_connection.request({
435
+ response = identity_v2_connection.request({
428
436
  :expects => [200, 204],
429
437
  :headers => {'Content-Type' => 'application/json'},
430
438
  :body => Fog::JSON.encode(request_body),
@@ -574,7 +582,11 @@ module Fog
574
582
  end
575
583
 
576
584
  def self.get_supported_version_path(supported_versions, uri, auth_token, connection_options = {})
577
- connection = Fog::Core::Connection.new("#{uri.scheme}://#{uri.host}:#{uri.port}", false, connection_options)
585
+ # Find a version in the path (e.g. the v1 in /xyz/v1/tenantid/abc) and get the path up until that version (e.g. /xyz))
586
+ path_components = uri.path.split '/'
587
+ version_component_index = path_components.index{|comp| comp.match(/v[0-9].?[0-9]?/) }
588
+ versionless_path = (path_components.take(version_component_index).join '/' if version_component_index) || ''
589
+ connection = Fog::Core::Connection.new("#{uri.scheme}://#{uri.host}:#{uri.port}#{versionless_path}", false, connection_options)
578
590
  response = connection.request({
579
591
  :expects => [200, 204, 300],
580
592
  :headers => {'Content-Type' => 'application/json',