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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5868213b3c06f58f9834aba4e9b927000425ffbb
4
+ data.tar.gz: b46af72b6d2f867e59523ae83f56312a4427614e
5
+ SHA512:
6
+ metadata.gz: 9652cfe071fb895cb13d2b74f196baa59b58bbc23322516c6ba51828d8e5c34ac821934f480e7e25a8469394f06374c53071abfd4e7ea647220f154f1a028ceb
7
+ data.tar.gz: 05c8d72755a5b80c2d306cdd1614205e89b794217d9e813accbd5cdc16328ae9eb64d8de4ac8009a9ce312e9e9b0a219036adcd60ee47c33cf9178f14cc79925
@@ -4,6 +4,7 @@ rvm:
4
4
  - 1.8.7
5
5
  - 1.9.2
6
6
  - 1.9.3
7
+ - 2.0.0
7
8
 
8
9
  script: FOG_MOCK=true bundle exec shindont
9
10
 
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
+
5
+ gem "multi_json", '~>1.0'
data/README.md CHANGED
@@ -100,8 +100,8 @@ It will return an [excon](http://github.com/geemus/excon) response, which has `b
100
100
 
101
101
  ## Go forth and conquer
102
102
 
103
- Play around and use the console to explore or check out [fog.io](http://fog.io) for more details and examples.
104
- Once you are ready to start scripting fog, here is a quick hint on how to make connections without the command line thing to help you.
103
+ Play around and use the console to explore or check out [fog.io](http://fog.io) and the [provider documentation](http://fog.io/about/provider_documentation.html)
104
+ for more details and examples. Once you are ready to start scripting fog, here is a quick hint on how to make connections without the command line thing to help you.
105
105
 
106
106
  # create a compute connection
107
107
  compute = Fog::Compute.new(:provider => 'AWS', :aws_access_key_id => ACCESS_KEY_ID, :aws_secret_access_key => SECRET_ACCESS_KEY)
@@ -128,7 +128,8 @@ geemus says: "That should give you everything you need to get started, but let m
128
128
 
129
129
  ## Additional Resources
130
130
 
131
- [fog.io](http://fog.io)
131
+ * [fog.io](http://fog.io)
132
+ * [Provider Documentation](http://fog.io/about/provider_documentation.html)
132
133
 
133
134
  ## Copyright
134
135
 
@@ -1,3 +1,210 @@
1
+ 1.11.0 05/04/2013 bbea0162df01317405bfbb4c427fdde40e5f0f2c
2
+ ==========================================================
3
+
4
+ Stats! { 'collaborators' => 1, 'downloads' => 2175484 }
5
+
6
+ MVP! Nat Welch
7
+
8
+ [Brightbox]
9
+ Updates image selector for name format. thanks Paul Thornthwaite
10
+
11
+ [Docs]
12
+ Fixes assorted yardoc tagging issues. thanks Paul Thornthwaite
13
+
14
+ [aws|iam]
15
+ user: add created_at attribute. thanks Pierre Carrier
16
+
17
+ [cloudstack]
18
+ add disk_offerings, os_types mock data. thanks Dmitry Dedov
19
+ add list_os_types, list_disk_offerings request mocks. thanks Dmitry Dedov
20
+ list_os_types, list_disk_offerings request tests, rm pending. thanks Dmitry Dedov
21
+ servers collection, add attributes to :all method. thanks Dmitry Dedov
22
+ fix image password_enabled field alias. thanks Dmitry Dedov
23
+ add create_disk_offering request. thanks Dmitry Dedov
24
+ add delete_disk_offering request. thanks Dmitry Dedov
25
+ add disk_offering model. thanks Dmitry Dedov
26
+ add disk_offerings collection. thanks Dmitry Dedov
27
+ add disk offerings to compute, tidy up. thanks Dmitry Dedov
28
+ add create/delete disk_offering mocks. thanks Dmitry Dedov
29
+ add disk_offering model tests. thanks Dmitry Dedov
30
+ fix typo in declaration model. thanks Dmitry Dedov
31
+ add delete_snapshot request mock, fix delete_snapshot description comments. thanks dm1try
32
+ add list_snapshots request mock. thanks dm1try
33
+ add test volume to mock data. thanks dm1try
34
+ tests, add snapshots_attributes to cloudstack provider config. thanks dm1try
35
+ tests, fix snapshot test. thanks dm1try
36
+ tests, remove unreachable code in snapshot test, add testcase for volume relation. thanks dm1try
37
+
38
+ [core]
39
+ fixing brittle json test. thanks Kyle Rames
40
+
41
+ [docs::aws::rds]
42
+ converted formatting from RDoc to YARD. thanks Weston Platter
43
+
44
+ [misc]
45
+ fix case where volume isn't instantly available to attach upon creation. thanks AltJ
46
+ cosmetic - fix space. thanks Andrew Kuklewicz
47
+ fix bug with head request - no query on version id for IA. thanks Andrew Kuklewicz
48
+ Fog::Model#wait_for: eliminate inner retry loop. thanks Chris Frederick
49
+ Implement rescue mode support for Rackspace. thanks Chris Wuest
50
+ Rectify issues with tests and status. thanks Chris Wuest
51
+ OS: Fix revert_resize_server method name. thanks Dan Prince
52
+ Fix non-circular-require warnings. thanks Eric Hodel
53
+ Fix bluebox's Server#public_ip_address. thanks Eric Lindvall
54
+ Fix typo in method name for DynamoDB::Mock#setup_credentials. thanks James Fraser
55
+ (maint) Fixup whitespace. thanks Jeff McCune
56
+ (maint) Clean up whitespace errors. thanks Jeff McCune
57
+ AWS | storage: use #service instead of the deprecated #connection in the tests. thanks Jonas Pfenniger
58
+ AWS | storage: add tests for directory#public_url. thanks Jonas Pfenniger
59
+ AWS | storage: add more uniq_id in the tests to avoid collisions. thanks Jonas Pfenniger
60
+ AWS | storage: disabling broken tests. thanks Jonas Pfenniger
61
+ AWS | storage: make directory.persisted? tell the truth. thanks Jonas Pfenniger
62
+ AWS | storage: fixes ignored location with new buckets. thanks Jonas Pfenniger
63
+ AWS | storage: big refactor. thanks Jonas Pfenniger
64
+ AWS | storage: also escape the bucket name when using the path_style. thanks Jonas Pfenniger
65
+ Updated gem spec to require json rather than multi_json; Fog::JSON will attempt to load and use multi_json first and then fallback to require json; removed hard coded references to multi_json. thanks Kyle Rames
66
+ Adding multi_json to GemFile as it is now an optional dependency for the gem. thanks Kyle Rames
67
+ Added tests for Fog::JSON; Added Fog::JSON::LoadError class; Updated all MultiJson references to Fog::JSON. thanks Kyle Rames
68
+ Added pointers to provider specific documentation to README.md. thanks Kyle Rames
69
+ adding space to force travis to build. thanks Kyle Rames
70
+ Remove the OpenStack API cache busting. thanks Mark Turner
71
+ Changes the path only if subdomain is not @host. thanks Matthieu Huin
72
+ Vsphere: add options of numCPUs and memoryMB for VM clone. thanks Ming Jin
73
+ delete vms that is not ready for vm.config, e.g. during the creation period. thanks Ming Jin
74
+ merged fog HEAD, deleting whitespaces. thanks Ming Jin
75
+ delete whitespaces. thanks Ming Jin
76
+ fix issues in checking whether VM is of template type. thanks Ming Jin
77
+ trying to move gce to google. thanks Nat Welch
78
+ more trying to move gce to google. thanks Nat Welch
79
+ GCE -> Google. thanks Nat Welch
80
+ merge bin files. thanks Nat Welch
81
+ google was in the providers twice. thanks Nat Welch
82
+ fixes tests due to class name collision. thanks Nat Welch
83
+ remove more references to gce. thanks Nat Welch
84
+ an attempt to get gce tests working in travis. thanks Nat Welch
85
+ a little sorting of config options. thanks Nat Welch
86
+ trying to move gce to google. thanks Nat Welch
87
+ more trying to move gce to google. thanks Nat Welch
88
+ GCE -> Google. thanks Nat Welch
89
+ merge bin files. thanks Nat Welch
90
+ google was in the providers twice. thanks Nat Welch
91
+ fixes tests due to class name collision. thanks Nat Welch
92
+ remove more references to gce. thanks Nat Welch
93
+ an attempt to get gce tests working in travis. thanks Nat Welch
94
+ a little sorting of config options. thanks Nat Welch
95
+ remove google-api requirements. thanks Nat Welch
96
+ stripping out thin. thanks Nat Welch
97
+ should move auth into a the main class. thanks Nat Welch
98
+ Hopeing the head of the gapi makes things better... thanks Nat Welch
99
+ actually just specify a version. thanks Nat Welch
100
+ load file appropriately. thanks Nat Welch
101
+ fix deprecation notice. thanks Nat Welch
102
+ more attempts to get server creation working. thanks Nat Welch
103
+ get rid of gAPI warnings and Fog deprecation notices. thanks Nat Welch
104
+ successfully launched a server. thanks Nat Welch
105
+ whoops. thanks Nat Welch
106
+ trying to fix 1.8.7. thanks Nat Welch
107
+ still trying to figure out 1.8.7 support. thanks Nat Welch
108
+ fixing another 1.8.7 bug. thanks Nat Welch
109
+ Add correct keys for Google Compute. thanks Nat Welch
110
+ whoops. thanks Nat Welch
111
+ put extra keys in fog credential error. thanks Nat Welch
112
+ Fixes the test running. thanks Nat Welch
113
+ 13 is now deprecated. thanks Nat Welch
114
+ An attempt to get disk requests passing tests. thanks Nat Welch
115
+ More accurate disk tests that fail. thanks Nat Welch
116
+ Kernel api has been deprecated. thanks Nat Welch
117
+ removing listoperations as it doesn't exist anymore. thanks Nat Welch
118
+ basis for zone and global operations requests. thanks Nat Welch
119
+ better operation APIs. thanks Nat Welch
120
+ cheating to make operations tests simpler for now. thanks Nat Welch
121
+ firewall tests passing. thanks Nat Welch
122
+ passing zone tests. thanks Nat Welch
123
+ format isn't write, but valid API requests. thanks Nat Welch
124
+ working image test. thanks Nat Welch
125
+ more accurate server requests. thanks Nat Welch
126
+ fix network list test. thanks Nat Welch
127
+ get image tests closer to passing. thanks Nat Welch
128
+ trying to get a simple model test working. thanks Nat Welch
129
+ progress. thanks Nat Welch
130
+ didn't mean to commit this. thanks Nat Welch
131
+ fix server list. thanks Nat Welch
132
+ slightly more accurate image test, although still failing. thanks Nat Welch
133
+ fix delete server. thanks Nat Welch
134
+ Fixes insert and delete. thanks Nat Welch
135
+ Trying to get ssh command working. thanks Nat Welch
136
+ ... really?. thanks Nat Welch
137
+ trying to get ssh to work. thanks Nat Welch
138
+ I'm not saving networkinterfaces. thanks Nat Welch
139
+ more attempts to get ssh working. thanks Nat Welch
140
+ zone_names are urls, but I need to write them as just the name. thanks Nat Welch
141
+ trying to get keys working for ssh. thanks Nat Welch
142
+ auto expand home. thanks Nat Welch
143
+ whoops. thanks Nat Welch
144
+ add set_metadata to upload ssh keys. thanks Nat Welch
145
+ custome sshable. thanks Nat Welch
146
+ reverting bin.rb to original state. thanks Nat Welch
147
+ disable mock running, I think. thanks Nat Welch
148
+ merge fail. thanks Nat Welch
149
+ Fix CHANGELOG fog version for digitalocean, xenserver and openstack. thanks Sergio Rubio
150
+ issue #1275 removed rspec requires - tests pass. thanks Weston Platter
151
+ Adding Google Compute Engine driver. thanks Ziyad Mir
152
+ Updating create server behaviour and defaults. thanks Ziyad Mir
153
+ Adding Google Compute Engine driver. thanks Ziyad Mir
154
+ Updating create server behaviour and defaults. thanks Ziyad Mir
155
+ remove kyle rames from future contention for MVP. thanks geemus
156
+ add trademark notice. thanks geemus
157
+ Revert "add trademark notice". thanks geemus
158
+ add 2.0.0 to travis build list. thanks geemus
159
+
160
+ [openstack]
161
+ Retrieve supported API version for Image & Network services. thanks Ferran Rodenas
162
+
163
+ [openstack|compute]
164
+ Add volume attachment methods. thanks Ferran Rodenas
165
+ Add volume method to server model. thanks Ferran Rodenas
166
+ Add volume tests. thanks Ferran Rodenas
167
+
168
+ [openstack|volume]
169
+ Added quota requests for Cinder. thanks Philip Mark M. Deazeta
170
+
171
+ [rackspace]
172
+ updated NotFound exceptions to include region when available. thanks Kyle Rames
173
+ correcting exception classes on YARD docs. thanks Kyle Rames
174
+ fixing delete image tests. thanks Kyle Rames
175
+ updated ServiceException to catch JSON decoding exception and display a warning message. thanks Kyle Rames
176
+ fixing broken tests. thanks Kyle Rames
177
+ removing duplicate line caused by bad merge. thanks Kyle Rames
178
+ fixing bug with mock data. thanks Kyle Rames
179
+
180
+ [rackspace|compute_v2]
181
+ fixed bug in InvalidStateExceptions. thanks Kyle Rames
182
+ fixed bug where server creation was not adding networks. thanks Kyle Rames
183
+
184
+ [rackspace|dns]
185
+ updated DNS service to use Fog::DNS::Rackspace::NotFound exceptions in keeping with the rest of the services. thanks Kyle Rames
186
+
187
+ [rackspace|storage]
188
+ updated storage and cdn services to wrap excon exceptions in the same manner as the other Rackspace services. thanks Kyle Rames
189
+
190
+ [vsphere]
191
+ Use Fog.mock? as the other providers Specs can set Fog.mock! without setting the env var. thanks Carlos Sanchez
192
+ Use find_raw_datacenter instead of get_raw_datacenter. thanks Carlos Sanchez
193
+ allow setting ram and num of cpu when cloning. thanks Mick Pollard
194
+ add list_templates function. thanks Ming Jin
195
+ add get_template function. thanks Ming Jin
196
+
197
+ [vsphere|compute]
198
+ Merge tmandke VM list speedups. thanks Jeff McCune
199
+ Add VM template models. thanks Jeff McCune
200
+ fix incorrect filters.merge in networks model. thanks Mick Pollard
201
+ add list_templates function. thanks Ming Jin
202
+ add get_template function. thanks Ming Jin
203
+ add options of numCPUs and memoryMB for VM clone. thanks Ming Jin
204
+ Bulk fetch all managed views VM properties. thanks Tejas Ravindra Mandke
205
+ Switch some attributes to lazyload. thanks Tejas Ravindra Mandke
206
+
207
+
1
208
  1.10.1 04/04/2013 a270b69a23b43a8cdab768f88503779f27a74fa0
2
209
  ==========================================================
3
210
 
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
6
6
  ## If your rubyforge_project name is different, then edit it and comment out
7
7
  ## the sub! line in the Rakefile
8
8
  s.name = 'fog'
9
- s.version = '1.10.1'
10
- s.date = '2013-04-04'
9
+ s.version = '1.11.0'
10
+ s.date = '2013-05-04'
11
11
  s.rubyforge_project = 'fog'
12
12
 
13
13
  ## Make sure your summary is short. The description may be as long
@@ -41,9 +41,10 @@ Gem::Specification.new do |s|
41
41
  ## List your runtime dependencies here. Runtime dependencies are those
42
42
  ## that are needed for an end user to actually USE your code.
43
43
  s.add_dependency('builder')
44
+ s.add_dependency('google-api-client', '~>0.6.2')
44
45
  s.add_dependency('excon', '~>0.20')
45
46
  s.add_dependency('formatador', '~>0.2.0')
46
- s.add_dependency('multi_json', '~>1.0')
47
+ s.add_dependency('json', '~>1.7')
47
48
  s.add_dependency('mime-types')
48
49
  s.add_dependency('net-scp', '~>1.1')
49
50
  s.add_dependency('net-ssh', '>=2.1.3')
@@ -3,8 +3,6 @@ require 'fog/aws/credential_fetcher'
3
3
  require 'fog/aws/signaturev4'
4
4
  module Fog
5
5
  module AWS
6
- COMPLIANT_BUCKET_NAMES = /^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\-(?![\.])){1,61}[a-z0-9]$/
7
-
8
6
  extend Fog::Provider
9
7
 
10
8
  service(:auto_scaling, 'aws/auto_scaling', 'AutoScaling')
@@ -50,7 +50,7 @@ module Fog
50
50
  self.class.data.delete(@aws_access_key_id)
51
51
  end
52
52
 
53
- def setup_credientials(options)
53
+ def setup_credentials(options)
54
54
  @aws_access_key_id = options[:aws_access_key_id]
55
55
  end
56
56
  end
@@ -132,8 +132,6 @@ module Fog
132
132
  def self.data
133
133
  @data ||= Hash.new do |hash, region|
134
134
  hash[region] = Hash.new do |region_hash, key|
135
- owner_id = Fog::AWS::Mock.owner_id
136
- security_group_id = Fog::AWS::Mock.security_group_id
137
135
  region_hash[key] = {
138
136
  :clusters => {}, # cache cluster data, indexed by cluster ID
139
137
  }
@@ -92,6 +92,7 @@ module Fog
92
92
  :path => '/',
93
93
  :arn => "arn:aws:iam::#{Fog::AWS::Mock.owner_id}:user/#{ukey}",
94
94
  :access_keys => [],
95
+ :created_at => Time.now,
95
96
  :policies => {}
96
97
  }
97
98
  end,
@@ -108,6 +108,7 @@ module Fog
108
108
  self.availability_zone = new_server.availability_zone
109
109
  elsif new_server
110
110
  requires :device
111
+ wait_for { ready? }
111
112
  @server = nil
112
113
  self.server_id = new_server.id
113
114
  service.attach_volume(server_id, id, device)
@@ -10,6 +10,7 @@ module Fog
10
10
  attribute :path, :aliases => 'Path'
11
11
  attribute :arn, :aliases => 'Arn'
12
12
  attribute :user_id, :aliases => 'UserId'
13
+ attribute :created_at, :aliases => 'CreateDate', :type => :time
13
14
 
14
15
  def save
15
16
  requires :id
@@ -22,7 +22,7 @@ module Fog
22
22
  :prefix => 'prefix'
23
23
  })
24
24
  data = service.get_bucket(key, options).body
25
- directory = new(:key => data['Name'])
25
+ directory = new(:key => data['Name'], :is_persisted => true)
26
26
  options = {}
27
27
  for k, v in data
28
28
  if ['CommonPrefixes', 'Delimiter', 'IsTruncated', 'Marker', 'MaxKeys', 'Prefix'].include?(k)
@@ -9,14 +9,12 @@ module Fog
9
9
  class Directory < Fog::Model
10
10
  VALID_ACLS = ['private', 'public-read', 'public-read-write', 'authenticated-read']
11
11
 
12
- # See http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html
13
- INVALID_LOCATIONS = ['us-east-1']
14
-
15
12
  attr_reader :acl
16
13
 
17
14
  identity :key, :aliases => ['Name', 'name']
18
15
 
19
- attribute :creation_date, :aliases => 'CreationDate'
16
+ attribute :creation_date, :aliases => 'CreationDate', :type => 'time'
17
+ attribute :location, :aliases => 'LocationConstraint', :type => 'string'
20
18
 
21
19
  def acl=(new_acl)
22
20
  unless VALID_ACLS.include?(new_acl)
@@ -35,16 +33,12 @@ module Fog
35
33
  end
36
34
 
37
35
  def location
38
- requires :key
39
- attributes[:location] || bucket_location || self.service.region
36
+ @location ||= (bucket_location || self.service.region)
40
37
  end
41
38
 
39
+ # NOTE: you can't change the region once the bucket is created
42
40
  def location=(new_location)
43
- if INVALID_LOCATIONS.include?(new_location)
44
- raise ArgumentError, "location must not include any of #{INVALID_LOCATIONS.join(', ')}. See http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html"
45
- else
46
- @location = new_location
47
- end
41
+ @location = new_location
48
42
  end
49
43
 
50
44
  def files
@@ -86,11 +80,9 @@ module Fog
86
80
  def public_url
87
81
  requires :key
88
82
  if service.get_bucket_acl(key).body['AccessControlList'].detect {|grant| grant['Grantee']['URI'] == 'http://acs.amazonaws.com/groups/global/AllUsers' && grant['Permission'] == 'READ'}
89
- if key.to_s =~ Fog::AWS::COMPLIANT_BUCKET_NAMES
90
- "https://#{key}.s3.amazonaws.com"
91
- else
92
- "https://s3.amazonaws.com/#{key}"
93
- end
83
+ service.request_url(
84
+ :bucket_name => key
85
+ )
94
86
  else
95
87
  nil
96
88
  end
@@ -103,18 +95,29 @@ module Fog
103
95
 
104
96
  options['x-amz-acl'] = acl if acl
105
97
 
106
- if location = attributes[:location] || (self.service.region != 'us-east-1' && self.service.region)
98
+ # http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUT.html
99
+ # Ignore the default region us-east-1
100
+ if !persisted? && location != DEFAULT_REGION
107
101
  options['LocationConstraint'] = location
108
102
  end
109
103
 
110
104
  service.put_bucket(key, options)
105
+ attributes[:is_persisted] = true
111
106
 
112
107
  true
113
108
  end
114
109
 
110
+ def persisted?
111
+ # is_persisted is true in case of directories.get or after #save
112
+ # creation_date is set in case of directories.all
113
+ attributes[:is_persisted] || !!attributes[:creation_date]
114
+ end
115
+
115
116
  private
116
117
 
117
118
  def bucket_location
119
+ requires :key
120
+ return nil unless persisted?
118
121
  data = service.get_bucket_location(key)
119
122
  data.body['LocationConstraint']
120
123
  end
@@ -163,11 +163,10 @@ module Fog
163
163
  def public_url
164
164
  requires :directory, :key
165
165
  if service.get_object_acl(directory.key, key).body['AccessControlList'].detect {|grant| grant['Grantee']['URI'] == 'http://acs.amazonaws.com/groups/global/AllUsers' && grant['Permission'] == 'READ'}
166
- if directory.key.to_s =~ Fog::AWS::COMPLIANT_BUCKET_NAMES
167
- "https://#{directory.key}.s3.amazonaws.com/#{Fog::AWS.escape(key)}".gsub('%2F','/')
168
- else
169
- "https://s3.amazonaws.com/#{directory.key}/#{Fog::AWS.escape(key)}".gsub('%2F','/')
170
- end
166
+ service.request_url(
167
+ :bucket_name => directory.key,
168
+ :object_name => key
169
+ )
171
170
  else
172
171
  nil
173
172
  end
@@ -14,6 +14,8 @@ module Fog
14
14
  case name
15
15
  when 'Arn', 'UserId', 'UserName', 'Path'
16
16
  @response['User'][name] = value
17
+ when 'CreateDate'
18
+ @response['User'][name] = Time.parse(value)
17
19
  when 'RequestId'
18
20
  @response[name] = value
19
21
  end