fog 1.10.1 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (319) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +1 -0
  3. data/Gemfile +2 -0
  4. data/README.md +4 -3
  5. data/changelog.txt +207 -0
  6. data/fog.gemspec +4 -3
  7. data/lib/fog/aws.rb +0 -2
  8. data/lib/fog/aws/dynamodb.rb +1 -1
  9. data/lib/fog/aws/elasticache.rb +0 -2
  10. data/lib/fog/aws/iam.rb +1 -0
  11. data/lib/fog/aws/models/compute/volume.rb +1 -0
  12. data/lib/fog/aws/models/iam/user.rb +1 -0
  13. data/lib/fog/aws/models/storage/directories.rb +1 -1
  14. data/lib/fog/aws/models/storage/directory.rb +20 -17
  15. data/lib/fog/aws/models/storage/file.rb +4 -5
  16. data/lib/fog/aws/parsers/iam/get_user.rb +2 -0
  17. data/lib/fog/aws/parsers/iam/list_users.rb +2 -0
  18. data/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb +2 -2
  19. data/lib/fog/aws/requests/cdn/put_distribution_config.rb +3 -3
  20. data/lib/fog/aws/requests/cloud_formation/update_stack.rb +3 -3
  21. data/lib/fog/aws/requests/cloud_formation/validate_template.rb +5 -5
  22. data/lib/fog/aws/requests/iam/create_user.rb +5 -4
  23. data/lib/fog/aws/requests/iam/get_user.rb +5 -4
  24. data/lib/fog/aws/requests/iam/list_users.rb +5 -4
  25. data/lib/fog/aws/requests/rds/create_db_instance.rb +25 -25
  26. data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +3 -3
  27. data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +2 -2
  28. data/lib/fog/aws/requests/storage/copy_object.rb +2 -2
  29. data/lib/fog/aws/requests/storage/delete_bucket.rb +1 -1
  30. data/lib/fog/aws/requests/storage/delete_bucket_cors.rb +1 -1
  31. data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +1 -1
  32. data/lib/fog/aws/requests/storage/delete_bucket_policy.rb +1 -1
  33. data/lib/fog/aws/requests/storage/delete_bucket_website.rb +1 -1
  34. data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +1 -1
  35. data/lib/fog/aws/requests/storage/delete_object.rb +1 -1
  36. data/lib/fog/aws/requests/storage/get_bucket.rb +1 -1
  37. data/lib/fog/aws/requests/storage/get_bucket_acl.rb +1 -1
  38. data/lib/fog/aws/requests/storage/get_bucket_cors.rb +1 -1
  39. data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +1 -1
  40. data/lib/fog/aws/requests/storage/get_bucket_location.rb +1 -1
  41. data/lib/fog/aws/requests/storage/get_bucket_logging.rb +1 -1
  42. data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +1 -1
  43. data/lib/fog/aws/requests/storage/get_bucket_policy.rb +1 -1
  44. data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +1 -1
  45. data/lib/fog/aws/requests/storage/get_bucket_website.rb +1 -1
  46. data/lib/fog/aws/requests/storage/get_object.rb +2 -2
  47. data/lib/fog/aws/requests/storage/get_object_acl.rb +2 -2
  48. data/lib/fog/aws/requests/storage/get_object_http_url.rb +1 -19
  49. data/lib/fog/aws/requests/storage/get_object_torrent.rb +2 -2
  50. data/lib/fog/aws/requests/storage/get_object_url.rb +5 -14
  51. data/lib/fog/aws/requests/storage/get_request_payment.rb +1 -1
  52. data/lib/fog/aws/requests/storage/head_object.rb +2 -2
  53. data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +2 -2
  54. data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +7 -8
  55. data/lib/fog/aws/requests/storage/list_parts.rb +2 -2
  56. data/lib/fog/aws/requests/storage/put_bucket.rb +1 -1
  57. data/lib/fog/aws/requests/storage/put_bucket_acl.rb +1 -1
  58. data/lib/fog/aws/requests/storage/put_bucket_cors.rb +1 -1
  59. data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +1 -1
  60. data/lib/fog/aws/requests/storage/put_bucket_logging.rb +1 -1
  61. data/lib/fog/aws/requests/storage/put_bucket_policy.rb +1 -1
  62. data/lib/fog/aws/requests/storage/put_bucket_versioning.rb +1 -1
  63. data/lib/fog/aws/requests/storage/put_bucket_website.rb +1 -1
  64. data/lib/fog/aws/requests/storage/put_object.rb +2 -2
  65. data/lib/fog/aws/requests/storage/put_object_acl.rb +8 -8
  66. data/lib/fog/aws/requests/storage/put_object_url.rb +5 -7
  67. data/lib/fog/aws/requests/storage/put_request_payment.rb +1 -1
  68. data/lib/fog/aws/requests/storage/upload_part.rb +2 -2
  69. data/lib/fog/aws/storage.rb +201 -97
  70. data/lib/fog/bin/google.rb +47 -1
  71. data/lib/fog/bluebox/models/compute/server.rb +3 -1
  72. data/lib/fog/brightbox/compute.rb +11 -26
  73. data/lib/fog/brightbox/compute/image_selector.rb +45 -0
  74. data/lib/fog/cloudstack/compute.rb +70 -2
  75. data/lib/fog/cloudstack/models/compute/disk_offering.rb +46 -0
  76. data/lib/fog/cloudstack/models/compute/disk_offerings.rb +27 -0
  77. data/lib/fog/cloudstack/models/compute/image.rb +1 -1
  78. data/lib/fog/cloudstack/models/compute/servers.rb +3 -2
  79. data/lib/fog/cloudstack/requests/compute/create_disk_offering.rb +51 -0
  80. data/lib/fog/cloudstack/requests/compute/delete_disk_offering.rb +31 -0
  81. data/lib/fog/cloudstack/requests/compute/delete_snapshot.rb +44 -2
  82. data/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb +9 -0
  83. data/lib/fog/cloudstack/requests/compute/list_os_types.rb +9 -0
  84. data/lib/fog/cloudstack/requests/compute/list_snapshots.rb +21 -0
  85. data/lib/fog/core/errors.rb +3 -0
  86. data/lib/fog/core/json.rb +48 -7
  87. data/lib/fog/core/model.rb +11 -10
  88. data/lib/fog/core/service.rb +1 -1
  89. data/lib/fog/digitalocean/CHANGELOG.md +1 -1
  90. data/lib/fog/dreamhost/dns.rb +1 -3
  91. data/lib/fog/google.rb +1 -0
  92. data/lib/fog/google/compute.rb +131 -0
  93. data/lib/fog/google/models/compute/flavor.rb +24 -0
  94. data/lib/fog/google/models/compute/flavors.rb +28 -0
  95. data/lib/fog/google/models/compute/image.rb +19 -0
  96. data/lib/fog/google/models/compute/images.rb +28 -0
  97. data/lib/fog/google/models/compute/server.rb +80 -0
  98. data/lib/fog/google/models/compute/servers.rb +61 -0
  99. data/lib/fog/google/requests/compute/delete_disk.rb +31 -0
  100. data/lib/fog/google/requests/compute/delete_firewall.rb +30 -0
  101. data/lib/fog/google/requests/compute/delete_image.rb +30 -0
  102. data/lib/fog/google/requests/compute/delete_network.rb +30 -0
  103. data/lib/fog/google/requests/compute/delete_operation.rb +30 -0
  104. data/lib/fog/google/requests/compute/delete_server.rb +40 -0
  105. data/lib/fog/google/requests/compute/get_disk.rb +31 -0
  106. data/lib/fog/google/requests/compute/get_firewall.rb +30 -0
  107. data/lib/fog/google/requests/compute/get_image.rb +30 -0
  108. data/lib/fog/google/requests/compute/get_machine_type.rb +30 -0
  109. data/lib/fog/google/requests/compute/get_network.rb +30 -0
  110. data/lib/fog/google/requests/compute/get_server.rb +31 -0
  111. data/lib/fog/google/requests/compute/get_zone.rb +30 -0
  112. data/lib/fog/google/requests/compute/insert_disk.rb +35 -0
  113. data/lib/fog/google/requests/compute/insert_firewall.rb +37 -0
  114. data/lib/fog/google/requests/compute/insert_image.rb +38 -0
  115. data/lib/fog/google/requests/compute/insert_network.rb +34 -0
  116. data/lib/fog/google/requests/compute/insert_server.rb +49 -0
  117. data/lib/fog/google/requests/compute/list_disks.rb +30 -0
  118. data/lib/fog/google/requests/compute/list_firewalls.rb +29 -0
  119. data/lib/fog/google/requests/compute/list_global_operations.rb +28 -0
  120. data/lib/fog/google/requests/compute/list_images.rb +29 -0
  121. data/lib/fog/google/requests/compute/list_machine_types.rb +29 -0
  122. data/lib/fog/google/requests/compute/list_networks.rb +29 -0
  123. data/lib/fog/google/requests/compute/list_servers.rb +30 -0
  124. data/lib/fog/google/requests/compute/list_zone_operations.rb +28 -0
  125. data/lib/fog/google/requests/compute/list_zones.rb +29 -0
  126. data/lib/fog/google/requests/compute/set_metadata.rb +36 -0
  127. data/lib/fog/hp.rb +1 -1
  128. data/lib/fog/hp/storage.rb +1 -1
  129. data/lib/fog/internet_archive/models/storage/ia_attributes.rb +1 -1
  130. data/lib/fog/internet_archive/requests/storage/head_object.rb +1 -2
  131. data/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb +5 -6
  132. data/lib/fog/openstack.rb +29 -1
  133. data/lib/fog/openstack/CHANGELOG.md +1 -1
  134. data/lib/fog/openstack/compute.rb +3 -2
  135. data/lib/fog/openstack/identity.rb +1 -5
  136. data/lib/fog/openstack/image.rb +8 -9
  137. data/lib/fog/openstack/models/compute/server.rb +24 -0
  138. data/lib/fog/openstack/network.rb +7 -28
  139. data/lib/fog/openstack/requests/compute/allocate_address.rb +1 -1
  140. data/lib/fog/openstack/requests/compute/attach_volume.rb +11 -6
  141. data/lib/fog/openstack/requests/compute/boot_from_snapshot.rb +1 -1
  142. data/lib/fog/openstack/requests/compute/create_flavor.rb +1 -1
  143. data/lib/fog/openstack/requests/compute/create_key_pair.rb +1 -1
  144. data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
  145. data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +1 -1
  146. data/lib/fog/openstack/requests/compute/create_volume.rb +15 -14
  147. data/lib/fog/openstack/requests/compute/create_volume_snapshot.rb +1 -1
  148. data/lib/fog/openstack/requests/compute/delete_volume.rb +9 -2
  149. data/lib/fog/openstack/requests/compute/detach_volume.rb +7 -2
  150. data/lib/fog/openstack/requests/compute/get_server_volumes.rb +10 -0
  151. data/lib/fog/openstack/requests/compute/get_volume_details.rb +7 -16
  152. data/lib/fog/openstack/requests/compute/list_tenants.rb +1 -1
  153. data/lib/fog/openstack/requests/compute/list_volumes.rb +4 -26
  154. data/lib/fog/openstack/requests/compute/revert_resize_server.rb +2 -2
  155. data/lib/fog/openstack/requests/compute/update_quota.rb +1 -1
  156. data/lib/fog/openstack/requests/identity/create_ec2_credential.rb +1 -1
  157. data/lib/fog/openstack/requests/identity/create_role.rb +1 -1
  158. data/lib/fog/openstack/requests/identity/create_user.rb +1 -1
  159. data/lib/fog/openstack/requests/identity/update_user.rb +1 -1
  160. data/lib/fog/openstack/requests/image/update_image_members.rb +1 -1
  161. data/lib/fog/openstack/requests/volume/create_volume.rb +1 -1
  162. data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +1 -1
  163. data/lib/fog/openstack/requests/volume/get_quota.rb +31 -0
  164. data/lib/fog/openstack/requests/volume/get_quota_defaults.rb +31 -0
  165. data/lib/fog/openstack/requests/volume/update_quota.rb +32 -0
  166. data/lib/fog/openstack/volume.rb +11 -7
  167. data/lib/fog/rackspace.rb +11 -5
  168. data/lib/fog/rackspace/block_storage.rb +2 -1
  169. data/lib/fog/rackspace/cdn.rb +15 -15
  170. data/lib/fog/rackspace/compute.rb +2 -2
  171. data/lib/fog/rackspace/compute_v2.rb +8 -5
  172. data/lib/fog/rackspace/databases.rb +2 -1
  173. data/lib/fog/rackspace/dns.rb +2 -1
  174. data/lib/fog/rackspace/errors.rb +27 -0
  175. data/lib/fog/rackspace/load_balancers.rb +2 -1
  176. data/lib/fog/rackspace/mock_data.rb +5 -6
  177. data/lib/fog/rackspace/models/block_storage/snapshot.rb +8 -8
  178. data/lib/fog/rackspace/models/block_storage/snapshots.rb +8 -8
  179. data/lib/fog/rackspace/models/block_storage/volume.rb +16 -16
  180. data/lib/fog/rackspace/models/block_storage/volume_types.rb +8 -8
  181. data/lib/fog/rackspace/models/block_storage/volumes.rb +8 -8
  182. data/lib/fog/rackspace/models/compute_v2/attachment.rb +8 -8
  183. data/lib/fog/rackspace/models/compute_v2/attachments.rb +8 -8
  184. data/lib/fog/rackspace/models/compute_v2/flavors.rb +8 -8
  185. data/lib/fog/rackspace/models/compute_v2/image.rb +8 -8
  186. data/lib/fog/rackspace/models/compute_v2/images.rb +8 -8
  187. data/lib/fog/rackspace/models/compute_v2/metadata.rb +12 -12
  188. data/lib/fog/rackspace/models/compute_v2/metadatum.rb +8 -8
  189. data/lib/fog/rackspace/models/compute_v2/server.rb +94 -55
  190. data/lib/fog/rackspace/models/compute_v2/servers.rb +12 -12
  191. data/lib/fog/rackspace/models/dns/records.rb +1 -1
  192. data/lib/fog/rackspace/models/dns/zones.rb +1 -1
  193. data/lib/fog/rackspace/models/storage/account.rb +8 -8
  194. data/lib/fog/rackspace/models/storage/directories.rb +8 -8
  195. data/lib/fog/rackspace/models/storage/directory.rb +32 -32
  196. data/lib/fog/rackspace/models/storage/file.rb +36 -36
  197. data/lib/fog/rackspace/models/storage/files.rb +20 -20
  198. data/lib/fog/rackspace/requests/block_storage/create_snapshot.rb +4 -4
  199. data/lib/fog/rackspace/requests/block_storage/create_volume.rb +4 -4
  200. data/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb +4 -4
  201. data/lib/fog/rackspace/requests/block_storage/delete_volume.rb +4 -4
  202. data/lib/fog/rackspace/requests/block_storage/get_snapshot.rb +4 -4
  203. data/lib/fog/rackspace/requests/block_storage/get_volume.rb +4 -4
  204. data/lib/fog/rackspace/requests/block_storage/get_volume_type.rb +4 -4
  205. data/lib/fog/rackspace/requests/block_storage/list_snapshots.rb +4 -4
  206. data/lib/fog/rackspace/requests/block_storage/list_volume_types.rb +4 -4
  207. data/lib/fog/rackspace/requests/block_storage/list_volumes.rb +4 -4
  208. data/lib/fog/rackspace/requests/cdn/delete_object.rb +4 -4
  209. data/lib/fog/rackspace/requests/cdn/get_containers.rb +4 -4
  210. data/lib/fog/rackspace/requests/cdn/head_container.rb +4 -4
  211. data/lib/fog/rackspace/requests/cdn/post_container.rb +4 -4
  212. data/lib/fog/rackspace/requests/cdn/put_container.rb +4 -4
  213. data/lib/fog/rackspace/requests/compute/delete_image.rb +1 -1
  214. data/lib/fog/rackspace/requests/compute_v2/attach_volume.rb +4 -4
  215. data/lib/fog/rackspace/requests/compute_v2/change_server_password.rb +4 -4
  216. data/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb +4 -4
  217. data/lib/fog/rackspace/requests/compute_v2/create_image.rb +4 -4
  218. data/lib/fog/rackspace/requests/compute_v2/create_server.rb +11 -5
  219. data/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb +4 -4
  220. data/lib/fog/rackspace/requests/compute_v2/delete_image.rb +5 -4
  221. data/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb +4 -4
  222. data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +4 -4
  223. data/lib/fog/rackspace/requests/compute_v2/get_attachment.rb +4 -4
  224. data/lib/fog/rackspace/requests/compute_v2/get_flavor.rb +4 -4
  225. data/lib/fog/rackspace/requests/compute_v2/get_image.rb +4 -4
  226. data/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb +4 -4
  227. data/lib/fog/rackspace/requests/compute_v2/get_server.rb +4 -4
  228. data/lib/fog/rackspace/requests/compute_v2/list_addresses.rb +4 -4
  229. data/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb +4 -4
  230. data/lib/fog/rackspace/requests/compute_v2/list_attachments.rb +4 -4
  231. data/lib/fog/rackspace/requests/compute_v2/list_flavors.rb +4 -4
  232. data/lib/fog/rackspace/requests/compute_v2/list_images.rb +4 -4
  233. data/lib/fog/rackspace/requests/compute_v2/list_metadata.rb +4 -4
  234. data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +4 -4
  235. data/lib/fog/rackspace/requests/compute_v2/reboot_server.rb +4 -4
  236. data/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb +4 -4
  237. data/lib/fog/rackspace/requests/compute_v2/rescue_server.rb +43 -0
  238. data/lib/fog/rackspace/requests/compute_v2/resize_server.rb +4 -4
  239. data/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb +4 -4
  240. data/lib/fog/rackspace/requests/compute_v2/set_metadata.rb +4 -4
  241. data/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb +4 -4
  242. data/lib/fog/rackspace/requests/compute_v2/unrescue_server.rb +40 -0
  243. data/lib/fog/rackspace/requests/compute_v2/update_metadata.rb +4 -4
  244. data/lib/fog/rackspace/requests/compute_v2/update_server.rb +4 -4
  245. data/lib/fog/rackspace/requests/storage/copy_object.rb +4 -4
  246. data/lib/fog/rackspace/requests/storage/delete_container.rb +4 -4
  247. data/lib/fog/rackspace/requests/storage/delete_object.rb +4 -4
  248. data/lib/fog/rackspace/requests/storage/get_container.rb +4 -4
  249. data/lib/fog/rackspace/requests/storage/get_containers.rb +4 -4
  250. data/lib/fog/rackspace/requests/storage/get_object.rb +4 -4
  251. data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +4 -4
  252. data/lib/fog/rackspace/requests/storage/head_container.rb +4 -4
  253. data/lib/fog/rackspace/requests/storage/head_containers.rb +4 -4
  254. data/lib/fog/rackspace/requests/storage/head_object.rb +4 -4
  255. data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +4 -4
  256. data/lib/fog/rackspace/requests/storage/put_container.rb +4 -4
  257. data/lib/fog/rackspace/requests/storage/put_object.rb +4 -4
  258. data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +4 -4
  259. data/lib/fog/rackspace/service.rb +1 -1
  260. data/lib/fog/rackspace/storage.rb +12 -6
  261. data/lib/fog/riakcs.rb +3 -3
  262. data/lib/fog/riakcs/provisioning.rb +1 -3
  263. data/lib/fog/riakcs/requests/provisioning/create_user.rb +2 -2
  264. data/lib/fog/riakcs/requests/provisioning/get_user.rb +1 -1
  265. data/lib/fog/riakcs/requests/provisioning/list_users.rb +1 -1
  266. data/lib/fog/riakcs/requests/usage/get_usage.rb +1 -1
  267. data/lib/fog/riakcs/usage.rb +0 -1
  268. data/lib/fog/version.rb +1 -1
  269. data/lib/fog/vsphere/compute.rb +21 -14
  270. data/lib/fog/vsphere/models/compute/networks.rb +2 -2
  271. data/lib/fog/vsphere/models/compute/server.rb +10 -0
  272. data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +1 -1
  273. data/lib/fog/vsphere/requests/compute/get_template.rb +16 -0
  274. data/lib/fog/vsphere/requests/compute/list_datacenters.rb +1 -1
  275. data/lib/fog/vsphere/requests/compute/list_templates.rb +49 -0
  276. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +9 -6
  277. data/lib/fog/vsphere/requests/compute/vm_clone.rb +41 -27
  278. data/lib/fog/xenserver/CHANGELOG.md +1 -1
  279. data/lib/fog/xenserver/models/compute/network.rb +2 -2
  280. data/lib/tasks/changelog_task.rb +2 -1
  281. data/tests/aws/models/storage/directory_tests.rb +41 -5
  282. data/tests/aws/models/storage/file_tests.rb +1 -2
  283. data/tests/aws/models/storage/files_tests.rb +6 -4
  284. data/tests/aws/models/storage/url_tests.rb +7 -5
  285. data/tests/aws/models/storage/version_tests.rb +2 -2
  286. data/tests/aws/models/storage/versions_tests.rb +5 -5
  287. data/tests/aws/requests/iam/user_tests.rb +10 -8
  288. data/tests/aws/requests/storage/multipart_upload_tests.rb +1 -1
  289. data/tests/aws/requests/storage/object_tests.rb +15 -13
  290. data/tests/brightbox/compute/image_selector_tests.rb +103 -0
  291. data/tests/cloudstack/compute/models/disk_offering_tests.rb +5 -0
  292. data/tests/cloudstack/compute/models/snapshot_tests.rb +5 -20
  293. data/tests/cloudstack/requests/disk_offering_tests.rb +3 -3
  294. data/tests/cloudstack/requests/os_type_tests.rb +2 -3
  295. data/tests/compute/helper.rb +9 -0
  296. data/tests/core/json_tests.rb +62 -0
  297. data/tests/dynect/requests/dns/dns_tests.rb +0 -3
  298. data/tests/google/models/compute/server_tests.rb +24 -0
  299. data/tests/google/requests/compute/disk_tests.rb +88 -0
  300. data/tests/google/requests/compute/firewall_tests.rb +85 -0
  301. data/tests/google/requests/compute/image_tests.rb +80 -0
  302. data/tests/google/requests/compute/network_tests.rb +74 -0
  303. data/tests/google/requests/compute/operation_tests.rb +19 -0
  304. data/tests/google/requests/compute/server_tests.rb +84 -0
  305. data/tests/google/requests/compute/zone_tests.rb +46 -0
  306. data/tests/helpers/mock_helper.rb +4 -0
  307. data/tests/openstack/models/compute/server_tests.rb +91 -1
  308. data/tests/openstack/requests/compute/volume_tests.rb +11 -9
  309. data/tests/openstack/requests/volume/quota_tests.rb +51 -0
  310. data/tests/openstack/version_tests.rb +55 -0
  311. data/tests/rackspace/helper.rb +10 -0
  312. data/tests/rackspace/models/compute_v2/server_tests.rb +26 -1
  313. data/tests/rackspace/requests/compute/image_tests.rb +1 -1
  314. data/tests/rackspace/requests/compute_v2/image_tests.rb +2 -2
  315. data/tests/rackspace/requests/compute_v2/server_tests.rb +13 -0
  316. data/tests/rackspace/requests/dns/dns_tests.rb +1 -1
  317. data/tests/rackspace/requests/dns/records_tests.rb +3 -3
  318. data/tests/vsphere/requests/compute/vm_clone_tests.rb +10 -0
  319. metadata +109 -747
@@ -0,0 +1,85 @@
1
+ Shindo.tests('Fog::Compute[:google] | firewall requests', ['google']) do
2
+
3
+ @google = Fog::Compute[:google]
4
+
5
+ @insert_firewall_format = {
6
+ 'kind' => String,
7
+ 'id' => String,
8
+ 'selfLink' => String,
9
+ 'name' => String,
10
+ 'targetLink' => String,
11
+ 'status' => String,
12
+ 'user' => String,
13
+ 'progress' => Integer,
14
+ 'insertTime' => String,
15
+ 'startTime' => String,
16
+ 'operationType' => String
17
+ }
18
+
19
+ @get_firewall_format = {
20
+ 'kind' => String,
21
+ 'id' => String,
22
+ 'selfLink' => String,
23
+ 'creationTimestamp' => DateTime,
24
+ 'name' => String,
25
+ 'network' => String,
26
+ 'sourceRanges' => [],
27
+ 'allowed' => [],
28
+ }
29
+
30
+ @delete_firewall_format = {
31
+ 'kind' => String,
32
+ 'id' => String,
33
+ 'selfLink' => String,
34
+ 'name' => String,
35
+ 'targetLink' => String,
36
+ 'status' => String,
37
+ 'user' => String,
38
+ 'progress' => Integer,
39
+ 'targetId' => String,
40
+ 'insertTime' => String,
41
+ 'startTime' => String,
42
+ 'operationType' => String
43
+ }
44
+
45
+ @list_firewalls_format = {
46
+ 'kind' => String,
47
+ 'id' => String,
48
+ 'selfLink' => String,
49
+ 'items' => []
50
+ }
51
+
52
+ tests('success') do
53
+
54
+ firewall_name = 'new-firewall-test'
55
+ source_range = [ '10.0.0.0/8' ]
56
+ allowed = [{
57
+ "IPProtocol" => "tcp",
58
+ "ports" => [ "1-65535" ]
59
+ }, {
60
+ "IPProtocol" => "udp",
61
+ "ports" => [ "1-65535" ]
62
+ }, {
63
+ "IPProtocol" => "icmp"
64
+ }]
65
+
66
+ tests("#insert_firewall").formats(@insert_firewall_format) do
67
+ @google.insert_firewall(firewall_name, source_range, allowed).body
68
+ end
69
+
70
+ # TODO: Get better matching for firewall responses.
71
+ tests("#get_firewall").succeeds do
72
+ @google.get_firewall(firewall_name)
73
+ end
74
+
75
+ tests("#list_firewalls").succeeds do
76
+ @google.list_firewalls
77
+ end
78
+
79
+ tests("#delete_firewall").formats(@delete_firewall_format) do
80
+ @google.delete_firewall(firewall_name).body
81
+ end
82
+
83
+ end
84
+
85
+ end
@@ -0,0 +1,80 @@
1
+ Shindo.tests('Fog::Compute[:google] | image requests', ['google']) do
2
+
3
+ @google = Fog::Compute[:google]
4
+
5
+ @insert_image_format = {
6
+ 'kind' => String,
7
+ 'id' => String,
8
+ 'selfLink' => String,
9
+ 'name' => String,
10
+ 'targetLink' => String,
11
+ 'status' => String,
12
+ 'user' => String,
13
+ 'progress' => Integer,
14
+ 'insertTime' => String,
15
+ 'startTime' => String,
16
+ 'operationType' => String
17
+ }
18
+
19
+ @get_image_format = {
20
+ 'kind' => String,
21
+ 'id' => String,
22
+ 'creationTimestamp' => String,
23
+ 'selfLink' => String,
24
+ 'name' => String,
25
+ 'description' => String,
26
+ 'sourceType' => String,
27
+ 'preferredKernel' => String,
28
+ 'rawDisk' => {
29
+ 'containerType' => String,
30
+ 'source' => String
31
+ }
32
+ }
33
+
34
+ @delete_image_format = {
35
+ 'kind' => String,
36
+ 'id' => String,
37
+ 'selfLink' => String,
38
+ 'name' => String,
39
+ 'targetLink' => String,
40
+ 'status' => String,
41
+ 'user' => String,
42
+ 'progress' => Integer,
43
+ 'insertTime' => String,
44
+ 'startTime' => String,
45
+ 'operationType' => String
46
+ }
47
+
48
+ @list_images_format = {
49
+ 'kind' => String,
50
+ 'id' => String,
51
+ 'selfLink' => String,
52
+ 'items' => [@get_image_format]
53
+ }
54
+
55
+ tests('success') do
56
+
57
+ image_name = 'test-image'
58
+ source = 'https://www.google.com/images/srpr/logo4w.png'
59
+
60
+ tests("#insert_image").formats(@insert_image_format) do
61
+ @google.insert_image(image_name, source).body
62
+ end
63
+
64
+ tests("#get_image").formats(@get_image_format) do
65
+ @google.insert_image(image_name, source)
66
+ @google.get_image(image_name).body
67
+ end
68
+
69
+ tests("#list_images").formats(@list_images_format) do
70
+ @google.list_images.body
71
+ end
72
+
73
+ tests("#delete_image").formats(@delete_image_format) do
74
+ @google.insert_image(image_name, source)
75
+ @google.delete_image(image_name).body
76
+ end
77
+
78
+ end
79
+
80
+ end
@@ -0,0 +1,74 @@
1
+ Shindo.tests('Fog::Compute[:google] | network requests', ['google']) do
2
+
3
+ @google = Fog::Compute[:google]
4
+
5
+ @insert_network_format = {
6
+ 'kind' => String,
7
+ 'id' => String,
8
+ 'selfLink' => String,
9
+ 'name' => String,
10
+ 'targetLink' => String,
11
+ 'status' => String,
12
+ 'user' => String,
13
+ 'progress' => Integer,
14
+ 'insertTime' => String,
15
+ 'startTime' => String,
16
+ 'operationType' => String
17
+ }
18
+
19
+ @get_network_format = {
20
+ 'kind' => String,
21
+ 'id' => String,
22
+ 'selfLink' => String,
23
+ 'creationTimestamp' => String,
24
+ 'name' => String,
25
+ 'IPv4Range' => String,
26
+ 'gatewayIPv4' => String
27
+ }
28
+
29
+ @delete_network_format = {
30
+ 'kind' => String,
31
+ 'id' => String,
32
+ 'selfLink' => String,
33
+ 'name' => String,
34
+ 'targetLink' => String,
35
+ 'targetId' => String,
36
+ 'status' => String,
37
+ 'user' => String,
38
+ 'progress' => Integer,
39
+ 'insertTime' => String,
40
+ 'startTime' => String,
41
+ 'operationType' => String
42
+ }
43
+
44
+ @list_networks_format = {
45
+ 'kind' => String,
46
+ 'id' => String,
47
+ 'selfLink' => String,
48
+ 'items' => [@get_network_format]
49
+ }
50
+
51
+ tests('success') do
52
+
53
+ network_name = 'new-network-test'
54
+ ip_range = '192.168.0.0/16'
55
+
56
+ tests("#insert_network").formats(@insert_network_format) do
57
+ @google.insert_network(network_name, ip_range).body
58
+ end
59
+
60
+ tests("#get_network").formats(@get_network_format) do
61
+ @google.get_network(network_name).body
62
+ end
63
+
64
+ tests("#list_networks").formats(@list_networks_format) do
65
+ @google.list_networks.body
66
+ end
67
+
68
+ tests("#delete_network").formats(@delete_network_format) do
69
+ @google.delete_network(network_name).body
70
+ end
71
+
72
+ end
73
+
74
+ end
@@ -0,0 +1,19 @@
1
+ Shindo.tests('Fog::Compute[:google] | operation requests', ['google']) do
2
+
3
+ @google = Fog::Compute[:google]
4
+
5
+ tests('success') do
6
+
7
+ # We are not testing the format here because operation formats are pretty
8
+ # extensive based on what has happened to you account, ever.
9
+ # https://developers.google.com/compute/docs/reference/latest/globalOperations#resource
10
+ tests("#list_global_operations").succeeds do
11
+ @google.list_global_operations
12
+ end
13
+
14
+ tests("#list_zone_operations").succeeds do
15
+ zone_name = @google.list_zones.body["items"][0]["name"]
16
+ @google.list_zone_operations(zone_name)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,84 @@
1
+ Shindo.tests('Fog::Compute[:google] | server requests', ['google']) do
2
+
3
+ @google = Fog::Compute[:google]
4
+
5
+ @insert_server_format = {
6
+ 'kind' => String,
7
+ 'id' => String,
8
+ 'selfLink' => String,
9
+ 'name' => String,
10
+ 'targetLink' => String,
11
+ 'user' => String,
12
+ 'startTime' => String,
13
+ 'insertTime' => String,
14
+ 'operationType' => String,
15
+ 'status' => String,
16
+ 'progress' => Integer
17
+ }
18
+
19
+ @get_server_format = {
20
+ 'kind' => String,
21
+ 'id' => String,
22
+ 'selfLink' => String,
23
+ 'creationTimestamp' => String,
24
+ 'name' => String,
25
+ 'image' => String,
26
+ 'machineType' => String,
27
+ 'status' => String,
28
+ 'zone' => String,
29
+ 'disks' => [],
30
+ 'networkInterfaces' => []
31
+ }
32
+
33
+ @delete_server_format = {
34
+ 'kind' => String,
35
+ 'id' => String,
36
+ 'selfLink' => String,
37
+ 'name' => String,
38
+ 'targetLink' => String,
39
+ 'status' => String,
40
+ 'user' => String,
41
+ 'targetId' => String,
42
+ 'progress' => Integer,
43
+ 'insertTime' => String,
44
+ 'startTime' => String,
45
+ 'operationType' => String
46
+ }
47
+
48
+ @list_servers_format = {
49
+ 'kind' => String,
50
+ 'id' => String,
51
+ 'selfLink' => String,
52
+ }
53
+
54
+ tests('success') do
55
+
56
+ server_name = 'new-server-test'
57
+ image_name = "gcel-12-04-v20130325"
58
+ machine_type = "n1-standard-1"
59
+ zone_name = "us-central1-a"
60
+
61
+ tests("#insert_server").formats(@insert_server_format) do
62
+ @google.insert_server(
63
+ server_name,
64
+ image_name,
65
+ zone_name,
66
+ machine_type
67
+ ).body
68
+ end
69
+
70
+ tests("#list_servers").formats(@list_servers_format) do
71
+ @google.list_servers(zone_name).body
72
+ end
73
+
74
+ # Both of these tests require the server to be there...
75
+
76
+ #tests("#get_server").formats(@get_server_format) do
77
+ # @google.get_server(server_name, zone_name).body
78
+ #end
79
+
80
+ #tests("#delete_server").formats(@delete_server_format) do
81
+ # @google.delete_server(server_name, zone_name).body
82
+ #end
83
+ end
84
+ end
@@ -0,0 +1,46 @@
1
+ Shindo.tests('Fog::Compute[:google] | zone requests', ['google']) do
2
+
3
+ @google = Fog::Compute[:google]
4
+
5
+ @get_zone_format = {
6
+ 'kind' => String,
7
+ 'id' => String,
8
+ 'selfLink' => String,
9
+ 'creationTimestamp' => String,
10
+ 'name' => String,
11
+ 'description' => String,
12
+ 'status' => String,
13
+ 'maintenanceWindows' => [{
14
+ 'name' => String,
15
+ 'description' => String,
16
+ 'beginTime' => String,
17
+ 'endTime' => String,
18
+ }],
19
+ 'quotas' => [{
20
+ 'metric' => String,
21
+ 'limit' => Float,
22
+ 'usage' => Float},
23
+ ],
24
+ }
25
+
26
+ @list_zones_format = {
27
+ 'kind' => String,
28
+ 'id' => String,
29
+ 'selfLink' => String,
30
+ 'items' => [@get_zone_format]
31
+ }
32
+
33
+ tests('success') do
34
+
35
+ tests("#get_zone").formats(@get_zone_format) do
36
+ zone_name = @google.list_zones.body["items"][0]["name"]
37
+ @google.get_zone(zone_name).body
38
+ end
39
+
40
+ tests("#list_zones").formats(@list_zones_format) do
41
+ @google.list_zones.body
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -41,6 +41,10 @@ if Fog.mock?
41
41
  :go_grid_shared_secret => 'go_grid_shared_secret',
42
42
  :google_storage_access_key_id => 'google_storage_access_key_id',
43
43
  :google_storage_secret_access_key => 'google_storage_secret_access_key',
44
+ # Commented out till there are mocks for google/compute
45
+ #:google_project => 'google_project_name',
46
+ #:google_client_email => 'fake@developer.gserviceaccount.com',
47
+ #:google_key_location => '~/fake.p12',
44
48
  :hp_access_key => 'hp_access_key',
45
49
  :hp_secret_key => 'hp_secret_key',
46
50
  :hp_tenant_id => 'hp_tenant_id',
@@ -25,7 +25,7 @@ Shindo.tests("Fog::Compute[:openstack] | server", ['openstack']) do
25
25
 
26
26
  group = found_groups.first
27
27
  returns('my_group') { group.name }
28
- returns(server.connection) { group.connection }
28
+ returns(server.service) { group.service }
29
29
  ensure
30
30
  unless Fog.mocking? then
31
31
  server.destroy if server
@@ -78,8 +78,98 @@ Shindo.tests("Fog::Compute[:openstack] | server", ['openstack']) do
78
78
  end
79
79
  end
80
80
 
81
+ tests('#resize').succeeds do
82
+ fog = Fog::Compute[:openstack]
83
+
84
+ begin
85
+ flavor = fog.flavors.first.id
86
+ image = fog.images.first.id
87
+
88
+ server = fog.servers.new(:name => 'test server',
89
+ :flavor_ref => flavor,
90
+ :image_ref => image)
91
+
92
+ server.save
93
+
94
+ flavor_resize = fog.flavors[1].id
95
+ server.resize(flavor_resize)
96
+ server.wait_for { server.state == "VERIFY_RESIZE" } unless Fog.mocking?
97
+ server.revert_resize
98
+ server.wait_for { server.state == "ACTIVE" } unless Fog.mocking?
99
+ server.resize(flavor_resize)
100
+ server.wait_for { server.state == "VERIFY_RESIZE" } unless Fog.mocking?
101
+ server.confirm_resize
102
+
103
+ ensure
104
+ unless Fog.mocking? then
105
+ server.destroy if server
106
+
107
+ begin
108
+ fog.servers.get(server.id).wait_for do false end
109
+ rescue Fog::Errors::Error
110
+ # ignore, server went away
111
+ end
112
+ end
113
+ end
114
+ end
115
+
116
+ tests('#volumes').succeeds do
117
+ fog = Fog::Compute[:openstack]
118
+
119
+ begin
120
+ volume = fog.volumes.new(:name => 'test volume',
121
+ :description => 'test volume',
122
+ :size => 1)
123
+ volume.save
124
+ volume.wait_for { volume.status == 'available' } unless Fog.mocking?
125
+
126
+ flavor = fog.flavors.first.id
127
+ image = fog.images.first.id
128
+
129
+ server = fog.servers.new(:name => 'test server',
130
+ :flavor_ref => flavor,
131
+ :image_ref => image)
132
+
133
+ server.save
134
+ server.wait_for { server.state == "ACTIVE" } unless Fog.mocking?
135
+
136
+ server.attach_volume(volume.id, '/dev/vdc')
137
+ volume.wait_for { volume.status == 'in-use' } unless Fog.mocking?
138
+
139
+ found_volumes = server.volumes
140
+ returns(1) { found_volumes.length }
141
+
142
+ volume = found_volumes.first
143
+ returns('test volume') { volume.name }
144
+
145
+ found_attachments = server.volume_attachments
146
+ returns(1) { found_attachments.length }
81
147
 
148
+ attachment = found_attachments.first
149
+ returns('/dev/vdc') { attachment['device'] }
82
150
 
151
+ server.detach_volume(volume.id)
152
+ volume.wait_for { volume.status == 'available' } unless Fog.mocking?
153
+
154
+ found_volumes = server.volumes
155
+ returns(0) { found_volumes.length }
156
+
157
+ found_attachments = server.volume_attachments
158
+ returns(0) { found_attachments.length }
159
+ ensure
160
+ unless Fog.mocking? then
161
+ server.destroy if server
162
+ volume.destroy if volume
163
+
164
+ begin
165
+ fog.servers.get(server.id).wait_for do false end
166
+ fog.volumes.get(volume.id).wait_for do false end
167
+ rescue Fog::Errors::Error
168
+ # ignore, server went away
169
+ end
170
+ end
171
+ end
172
+ end
83
173
 
84
174
  end
85
175
  end