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
@@ -1,67 +0,0 @@
1
- require 'fog/core/collection'
2
- require 'fog/vsphere/models/compute/interface'
3
-
4
- module Fog
5
- module Compute
6
- class Vsphere
7
- class Interfaces < Fog::Collection
8
- model Fog::Compute::Vsphere::Interface
9
-
10
- attribute :server_id
11
-
12
- def all(filters = {})
13
- requires :server_id
14
-
15
- case server
16
- when Fog::Compute::Vsphere::Server
17
- load service.list_vm_interfaces(server.id)
18
- when Fog::Compute::Vsphere::Template
19
- load service.list_template_interfaces(server.id)
20
- else
21
- raise 'interfaces should have vm or template'
22
- end
23
-
24
- self.each { |interface| interface.server_id = server.id }
25
- self
26
- end
27
-
28
- def get(id)
29
- requires :server_id
30
-
31
- case server
32
- when Fog::Compute::Vsphere::Server
33
- interface = service.get_vm_interface(server.id, :key => id, :mac=> id, :name => id)
34
- when Fog::Compute::Vsphere::Template
35
- interface = service.get_template_interfaces(server.id, :key => id, :mac=> id, :name => id)
36
- else
37
-
38
- raise 'interfaces should have vm or template'
39
- end
40
-
41
- if interface
42
- Fog::Compute::Vsphere::Interface.new(interface.merge(:server_id => server.id, :service => service))
43
- else
44
- nil
45
- end
46
- end
47
-
48
- def new(attributes = {})
49
- if server_id
50
- super({ :server_id => server_id }.merge(attributes))
51
- else
52
- super
53
- end
54
- end
55
-
56
- def server
57
- return nil if server_id.nil?
58
- service.servers.get(server_id)
59
- end
60
-
61
- def server=(new_server)
62
- server_id = new_server.id
63
- end
64
- end
65
- end
66
- end
67
- end
@@ -1,22 +0,0 @@
1
- module Fog
2
- module Compute
3
- class Vsphere
4
- class Interfacetype < Fog::Model
5
- identity :id
6
-
7
- # attribute :class
8
- attribute :name
9
- attribute :datacenter
10
- attribute :servertype
11
-
12
- def initialize(attributes={} )
13
- super attributes
14
- end
15
-
16
- def to_s
17
- name
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,35 +0,0 @@
1
- require 'fog/core/collection'
2
- require 'fog/vsphere/models/compute/interfacetype'
3
-
4
- module Fog
5
- module Compute
6
- class Vsphere
7
- class Interfacetypes < Fog::Collection
8
- model Fog::Compute::Vsphere::Interfacetype
9
- attr_accessor :datacenter
10
- attr_accessor :servertype
11
-
12
- def all(filters = { })
13
- requires :servertype
14
- case servertype
15
- when Fog::Compute::Vsphere::Servertype
16
- load service.list_interface_types(filters.merge({
17
- :datacenter => datacenter,
18
- :servertype => servertype.id
19
- }))
20
- else
21
- raise 'interfacetypes should have a servertype'
22
- end
23
- end
24
-
25
- def get(id)
26
- requires :servertype
27
- requires :datacenter
28
- new service.get_interface_type id, servertype, datacenter
29
- rescue Fog::Compute::Vsphere::NotFound
30
- nil
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,18 +0,0 @@
1
- module Fog
2
- module Compute
3
- class Vsphere
4
- class Network < Fog::Model
5
- identity :id
6
-
7
- attribute :name
8
- attribute :datacenter
9
- attribute :accessible # reachable by at least one hypervisor
10
- attribute :virtualswitch
11
-
12
- def to_s
13
- name
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,23 +0,0 @@
1
- require 'fog/core/collection'
2
- require 'fog/vsphere/models/compute/network'
3
-
4
- module Fog
5
- module Compute
6
- class Vsphere
7
- class Networks < Fog::Collection
8
- model Fog::Compute::Vsphere::Network
9
- attr_accessor :datacenter
10
-
11
- def all(filters = {})
12
- f = { :datacenter => datacenter }.merge(filters)
13
- load service.list_networks(f)
14
- end
15
-
16
- def get(id)
17
- requires :datacenter
18
- new service.get_network(id, datacenter)
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,18 +0,0 @@
1
- require 'fog/compute/models/server'
2
-
3
- module Fog
4
- module Compute
5
- class Vsphere
6
- class Process < Fog::Model
7
- attribute :cmd_line
8
- attribute :end_time
9
- attribute :exit_code
10
- attribute :name
11
- attribute :owner
12
- attribute :pid
13
- attribute :start_time
14
- end
15
- end
16
- end
17
- end
18
-
@@ -1,19 +0,0 @@
1
- module Fog
2
- module Compute
3
- class Vsphere
4
- class ResourcePool < Fog::Model
5
- identity :id
6
-
7
- attribute :name
8
- attribute :cluster
9
- attribute :datacenter
10
- attribute :configured_memory_mb
11
- attribute :overall_status
12
-
13
- def to_s
14
- name
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,23 +0,0 @@
1
- require 'fog/core/collection'
2
- require 'fog/vsphere/models/compute/resource_pool'
3
-
4
- module Fog
5
- module Compute
6
- class Vsphere
7
- class ResourcePools < Fog::Collection
8
- model Fog::Compute::Vsphere::ResourcePool
9
- attr_accessor :datacenter, :cluster
10
-
11
- def all(filters = {})
12
- load service.list_resource_pools(filters.merge(:datacenter => datacenter, :cluster => cluster))
13
- end
14
-
15
- def get(id)
16
- requires :datacenter
17
- requires :cluster
18
- new service.get_resource_pool(id, cluster, datacenter)
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,16 +0,0 @@
1
- module Fog
2
- module Compute
3
- class Vsphere
4
- class SCSIController < Fog::Model
5
- attribute :shared_bus
6
- attribute :type
7
- attribute :unit_number
8
- attribute :key
9
-
10
- def to_s
11
- "#{type} ##{key}: shared: #{shared_bus}, unit_number: #{unit_number}"
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,325 +0,0 @@
1
- require 'fog/compute/models/server'
2
-
3
- module Fog
4
- module Compute
5
- class Vsphere
6
- class Server < Fog::Compute::Server
7
- extend Fog::Deprecation
8
- deprecate(:ipaddress, :public_ip_address)
9
-
10
- # This will be the instance uuid which is globally unique across
11
- # a vSphere deployment.
12
- identity :id
13
-
14
- # JJM REVISIT (Extend the model of a vmware server)
15
- # SEE: http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.VirtualMachine.html
16
- # (Take note of the See also section.)
17
- # In particular:
18
- # GuestInfo: information about the guest operating system
19
- # VirtualMachineConfigInfo: Access to the VMX file and configuration
20
-
21
- attribute :name
22
- # UUID may be the same from VM to VM if the user does not select (I copied it)
23
- attribute :uuid
24
- attribute :hostname
25
- attribute :operatingsystem
26
- attribute :public_ip_address, :aliases => 'ipaddress'
27
- attribute :power_state, :aliases => 'power'
28
- attribute :tools_state, :aliases => 'tools'
29
- attribute :tools_version
30
- attribute :mac_addresses, :aliases => 'macs'
31
- attribute :hypervisor, :aliases => 'host'
32
- attribute :connection_state
33
- attribute :mo_ref
34
- attribute :path
35
- attribute :memory_mb
36
- attribute :cpus
37
- attribute :corespersocket
38
- attribute :interfaces
39
- attribute :volumes
40
- attribute :customvalues
41
- attribute :overall_status, :aliases => 'status'
42
- attribute :cluster
43
- attribute :datacenter
44
- attribute :resource_pool
45
- attribute :instance_uuid # move this --> id
46
- attribute :guest_id
47
- attribute :hardware_version
48
- attribute :scsi_controller # this is the first scsi controller. Right now no more of them can be used.
49
- attribute :cpuHotAddEnabled
50
- attribute :memoryHotAddEnabled
51
- attribute :firmware
52
-
53
- def initialize(attributes={} )
54
- super defaults.merge(attributes)
55
- self.instance_uuid ||= id # TODO: remvoe instance_uuid as it can be replaced with simple id
56
- initialize_interfaces
57
- initialize_volumes
58
- initialize_customvalues
59
- initialize_scsi_controller
60
- end
61
-
62
- # Lazy Loaded Attributes
63
- [:datacenter, :cluster, :hypervisor, :resource_pool, :mac_addresses].each do |attr|
64
- define_method attr do
65
- attributes[attr] = attributes[attr].call if attributes[attr].is_a?(Proc)
66
- attributes[attr]
67
- end
68
- end
69
- # End Lazy Loaded Attributes
70
-
71
- def vm_reconfig_memory(options = {})
72
- requires :instance_uuid, :memory
73
- service.vm_reconfig_memory('instance_uuid' => instance_uuid, 'memory' => memory_mb)
74
- end
75
-
76
- def vm_reconfig_cpus(options = {})
77
- requires :instance_uuid, :cpus, :corespersocket
78
- service.vm_reconfig_cpus('instance_uuid' => instance_uuid, 'cpus' => cpus, 'corespersocket' => corespersocket)
79
- end
80
-
81
- def vm_reconfig_hardware(hardware_spec, options = {})
82
- requires :instance_uuid
83
- service.vm_reconfig_hardware('instance_uuid' => instance_uuid, 'hardware_spec' => hardware_spec)
84
- end
85
-
86
- def start(options = {})
87
- requires :instance_uuid
88
- service.vm_power_on('instance_uuid' => instance_uuid)
89
- end
90
-
91
- def stop(options = {})
92
- options = { :force => !tools_installed? || !tools_running? }.merge(options)
93
- requires :instance_uuid
94
- service.vm_power_off('instance_uuid' => instance_uuid, 'force' => options[:force])
95
- end
96
-
97
- def reboot(options = {})
98
- options = { :force => false }.merge(options)
99
- requires :instance_uuid
100
- service.vm_reboot('instance_uuid' => instance_uuid, 'force' => options[:force])
101
- end
102
-
103
- def destroy(options = {})
104
- requires :instance_uuid
105
- if ready?
106
- # need to turn it off before destroying
107
- stop(options)
108
- wait_for { !ready? }
109
- end
110
- service.vm_destroy('instance_uuid' => instance_uuid)
111
- end
112
-
113
- def migrate(options = {})
114
- options = { :priority => 'defaultPriority' }.merge(options)
115
- requires :instance_uuid
116
- service.vm_migrate('instance_uuid' => instance_uuid, 'priority' => options[:priority])
117
- end
118
-
119
- # Clone from a server object
120
- #
121
- # ==== Parameters
122
- # *<~Hash>:
123
- # * 'name'<~String> - *REQUIRED* Name of the _new_ VirtualMachine
124
- # * See more options in vm_clone request/compute/vm_clone.rb
125
- #
126
- def clone(options = {})
127
- requires :name, :datacenter, :path
128
-
129
- # Convert symbols to strings
130
- req_options = options.reduce({}) { |hsh, (k,v)| hsh[k.to_s] = v; hsh }
131
-
132
- # Give our path to the request
133
- req_options['template_path'] ="#{relative_path}/#{name}"
134
- req_options['datacenter'] = "#{datacenter}"
135
-
136
- # Perform the actual clone
137
- clone_results = service.vm_clone(req_options)
138
-
139
- # We need to assign the service, otherwise we can't reload the model
140
- # Create the new VM model. TODO This only works when "wait=true"
141
- new_vm = self.class.new(clone_results['new_vm'].merge(:service => self.service))
142
-
143
- # We need to assign the collection otherwise we
144
- # cannot reload the model.
145
- new_vm.collection = self.collection
146
-
147
- # Return the new VM model.
148
- new_vm
149
- end
150
-
151
- def take_snapshot(options = {})
152
- requires :instance_uuid
153
- service.vm_take_snapshot(options.merge('instance_uuid' => instance_uuid))
154
- end
155
-
156
- def ready?
157
- power_state == "poweredOn"
158
- end
159
-
160
- def tools_installed?
161
- tools_state != "toolsNotInstalled"
162
- end
163
-
164
- def tools_running?
165
- ["toolsOk","toolsOld"].include? tools_state
166
- end
167
-
168
- # defines VNC attributes on the hypervisor
169
- def config_vnc(options = {})
170
- requires :instance_uuid
171
- service.vm_config_vnc(options.merge('instance_uuid' => instance_uuid))
172
- end
173
-
174
- # returns a hash of VNC attributes required for service
175
- def vnc
176
- requires :instance_uuid
177
- service.vm_get_vnc(instance_uuid)
178
- end
179
-
180
- def memory
181
- memory_mb * 1024 * 1024
182
- end
183
-
184
- def sockets
185
- cpus / corespersocket
186
- end
187
-
188
- def mac
189
- interfaces.first.mac unless interfaces.empty?
190
- end
191
-
192
- def interfaces
193
- attributes[:interfaces] ||= id.nil? ? [] : service.interfaces( :server_id => self.id )
194
- end
195
-
196
- def interface_ready? attrs
197
- (attrs.is_a? Hash and attrs[:blocking]) or attrs.is_a? Fog::Compute::Vsphere::Interface
198
- end
199
-
200
- def add_interface attrs
201
- Fog::Logger.deprecation("<server>.add_interface is deprecated. Call <server>.interfaces.create instead.")
202
-
203
- interfaces.create(attrs)
204
- end
205
-
206
- def update_interface attrs
207
- wait_for { not ready? } if interface_ready? attrs
208
- service.update_vm_interface(id, attrs)
209
- end
210
-
211
- def destroy_interface attrs
212
- Fog::Logger.deprecation("<server>.destroy_vm_interface is deprecated. Call <server>.interfaces.get(:key => <nic_key>).destroy instead.")
213
-
214
- interfaces.get(attrs[:key] || attrs['key']).destroy
215
- end
216
-
217
- def volumes
218
- attributes[:volumes] ||= id.nil? ? [] : service.volumes(:server_id => self.id)
219
- end
220
-
221
- def snapshots(opts = {})
222
- service.snapshots(server_id: self.id).all(opts)
223
- end
224
-
225
- def find_snapshot(snapshot_ref)
226
- snapshots.get(snapshot_ref)
227
- end
228
-
229
- def revert_snapshot(snapshot)
230
- case snapshot
231
- when Snapshot
232
- service.revert_to_snapshot(snapshot)
233
- when String
234
- service.revert_to_snapshot(find_snapshot(snapshot))
235
- else
236
- fail ArgumentError, "snapshot has to be kind of Snapshot or String class"
237
- end
238
- end
239
-
240
- def guest_processes(opts = {})
241
- fail 'VM tools must be running' unless tools_running?
242
- service.list_processes(self.id, opts)
243
- end
244
-
245
- def customvalues
246
- attributes[:customvalues] ||= id.nil? ? [] : service.customvalues( :vm => self )
247
- end
248
-
249
- def scsi_controller
250
- self.attributes[:scsi_controller] ||= service.get_vm_first_scsi_controller(id)
251
- end
252
-
253
- def folder
254
- return nil unless datacenter and path
255
- attributes[:folder] ||= service.folders(:datacenter => datacenter, :type => :vm).get(path)
256
- end
257
-
258
- def save
259
- requires :name, :cluster, :datacenter
260
- if persisted?
261
- raise "update is not supported yet"
262
- # service.update_vm(attributes)
263
- else
264
- self.id = service.create_vm(attributes)
265
- end
266
- reload
267
- end
268
-
269
- def new?
270
- id.nil?
271
- end
272
-
273
- def reload
274
- # reload does not re-read assoiciated attributes, so we clear it manually
275
- [:interfaces, :volumes].each do |attr|
276
- self.attributes.delete(attr)
277
- end
278
- super
279
- end
280
-
281
- def relative_path
282
- requires :path, :datacenter
283
-
284
- (path.split('/').reject {|e| e.empty?} - ["Datacenters", datacenter, "vm"]).join("/")
285
- end
286
-
287
- private
288
-
289
- def defaults
290
- {
291
- :cpus => 1,
292
- # :corespersocket => 1,
293
- :memory_mb => 512,
294
- :guest_id => 'otherGuest',
295
- :path => '/'
296
- }
297
- end
298
-
299
- def initialize_interfaces
300
- if attributes[:interfaces] and attributes[:interfaces].is_a?(Array)
301
- self.attributes[:interfaces].map! { |nic| nic.is_a?(Hash) ? service.interfaces.new(nic) : nic }
302
- end
303
- end
304
-
305
- def initialize_volumes
306
- if attributes[:volumes] and attributes[:volumes].is_a?(Array)
307
- self.attributes[:volumes].map! { |vol| vol.is_a?(Hash) ? service.volumes.new(vol) : vol }
308
- end
309
- end
310
-
311
- def initialize_customvalues
312
- if attributes[:customvalues] and attributes[:customvalues].is_a?(Array)
313
- self.attributes[:customvalues].map { |cfield| cfield.is_a?(Hash) ? service.customvalue.new(cfield) : cfield}
314
- end
315
- end
316
-
317
- def initialize_scsi_controller
318
- if attributes[:scsi_controller] and attributes[:scsi_controller].is_a?(Hash)
319
- Fog::Compute::Vsphere::SCSIController.new(self.attributes[:scsi_controller])
320
- end
321
- end
322
- end
323
- end
324
- end
325
- end