fog 1.36.0 → 1.37.0

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