fog-google 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rubocop.yml +20 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +17 -0
  7. data/CONTRIBUTING.md +18 -0
  8. data/CONTRIBUTORS.md +41 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.md +20 -0
  11. data/README.md +55 -0
  12. data/Rakefile +34 -0
  13. data/examples/backend_services.rb +22 -0
  14. data/examples/bootstrap.rb +9 -0
  15. data/examples/create.rb +49 -0
  16. data/examples/dns/project.rb +8 -0
  17. data/examples/dns/zones.rb +43 -0
  18. data/examples/eric-fail.rb +36 -0
  19. data/examples/get_list_images.rb +26 -0
  20. data/examples/get_list_snapshots.rb +18 -0
  21. data/examples/image_all.rb +6 -0
  22. data/examples/image_create.rb +17 -0
  23. data/examples/l7_load_balance.rb +73 -0
  24. data/examples/launch_micro_instance.rb +29 -0
  25. data/examples/load-balance.rb +98 -0
  26. data/examples/metadata.rb +30 -0
  27. data/examples/monitoring/metric_descriptors.rb +11 -0
  28. data/examples/monitoring/timeseries_collection.rb +15 -0
  29. data/examples/monitoring/timeseries_descriptors.rb +15 -0
  30. data/examples/network.rb +38 -0
  31. data/examples/precreated_client.rb +14 -0
  32. data/examples/sql/flags.rb +7 -0
  33. data/examples/sql/instances.rb +38 -0
  34. data/examples/sql/operations.rb +20 -0
  35. data/examples/sql/ssl_certs.rb +28 -0
  36. data/examples/sql/tiers.rb +7 -0
  37. data/fog-google.gemspec +37 -0
  38. data/gemfiles/Gemfile.1.9.2+ +6 -0
  39. data/gemfiles/Gemfile.1.9.2- +9 -0
  40. data/lib/fog/bin/google.rb +88 -0
  41. data/lib/fog/google.rb +226 -0
  42. data/lib/fog/google/compute.rb +1068 -0
  43. data/lib/fog/google/dns.rb +96 -0
  44. data/lib/fog/google/models/compute/address.rb +94 -0
  45. data/lib/fog/google/models/compute/addresses.rb +40 -0
  46. data/lib/fog/google/models/compute/backend_service.rb +92 -0
  47. data/lib/fog/google/models/compute/backend_services.rb +22 -0
  48. data/lib/fog/google/models/compute/disk.rb +120 -0
  49. data/lib/fog/google/models/compute/disk_type.rb +28 -0
  50. data/lib/fog/google/models/compute/disk_types.rb +40 -0
  51. data/lib/fog/google/models/compute/disks.rb +41 -0
  52. data/lib/fog/google/models/compute/firewall.rb +46 -0
  53. data/lib/fog/google/models/compute/firewalls.rb +25 -0
  54. data/lib/fog/google/models/compute/flavor.rb +33 -0
  55. data/lib/fog/google/models/compute/flavors.rb +31 -0
  56. data/lib/fog/google/models/compute/forwarding_rule.rb +86 -0
  57. data/lib/fog/google/models/compute/forwarding_rules.rb +41 -0
  58. data/lib/fog/google/models/compute/global_forwarding_rule.rb +86 -0
  59. data/lib/fog/google/models/compute/global_forwarding_rules.rb +23 -0
  60. data/lib/fog/google/models/compute/http_health_check.rb +84 -0
  61. data/lib/fog/google/models/compute/http_health_checks.rb +26 -0
  62. data/lib/fog/google/models/compute/image.rb +90 -0
  63. data/lib/fog/google/models/compute/images.rb +73 -0
  64. data/lib/fog/google/models/compute/network.rb +43 -0
  65. data/lib/fog/google/models/compute/networks.rb +25 -0
  66. data/lib/fog/google/models/compute/operation.rb +75 -0
  67. data/lib/fog/google/models/compute/operations.rb +37 -0
  68. data/lib/fog/google/models/compute/project.rb +30 -0
  69. data/lib/fog/google/models/compute/projects.rb +20 -0
  70. data/lib/fog/google/models/compute/region.rb +32 -0
  71. data/lib/fog/google/models/compute/regions.rb +25 -0
  72. data/lib/fog/google/models/compute/resource_view.rb +116 -0
  73. data/lib/fog/google/models/compute/resource_views.rb +57 -0
  74. data/lib/fog/google/models/compute/route.rb +50 -0
  75. data/lib/fog/google/models/compute/routes.rb +25 -0
  76. data/lib/fog/google/models/compute/server.rb +258 -0
  77. data/lib/fog/google/models/compute/servers.rb +80 -0
  78. data/lib/fog/google/models/compute/snapshot.rb +48 -0
  79. data/lib/fog/google/models/compute/snapshots.rb +26 -0
  80. data/lib/fog/google/models/compute/target_http_proxies.rb +22 -0
  81. data/lib/fog/google/models/compute/target_http_proxy.rb +75 -0
  82. data/lib/fog/google/models/compute/target_instance.rb +74 -0
  83. data/lib/fog/google/models/compute/target_instances.rb +28 -0
  84. data/lib/fog/google/models/compute/target_pool.rb +113 -0
  85. data/lib/fog/google/models/compute/target_pools.rb +41 -0
  86. data/lib/fog/google/models/compute/url_map.rb +95 -0
  87. data/lib/fog/google/models/compute/url_maps.rb +22 -0
  88. data/lib/fog/google/models/compute/zone.rb +23 -0
  89. data/lib/fog/google/models/compute/zones.rb +24 -0
  90. data/lib/fog/google/models/dns/change.rb +40 -0
  91. data/lib/fog/google/models/dns/changes.rb +52 -0
  92. data/lib/fog/google/models/dns/project.rb +75 -0
  93. data/lib/fog/google/models/dns/projects.rb +25 -0
  94. data/lib/fog/google/models/dns/record.rb +112 -0
  95. data/lib/fog/google/models/dns/records.rb +52 -0
  96. data/lib/fog/google/models/dns/zone.rb +74 -0
  97. data/lib/fog/google/models/dns/zones.rb +34 -0
  98. data/lib/fog/google/models/monitoring/metric_descriptor.rb +20 -0
  99. data/lib/fog/google/models/monitoring/metric_descriptors.rb +28 -0
  100. data/lib/fog/google/models/monitoring/timeseries.rb +17 -0
  101. data/lib/fog/google/models/monitoring/timeseries_collection.rb +31 -0
  102. data/lib/fog/google/models/monitoring/timeseries_descriptor.rb +20 -0
  103. data/lib/fog/google/models/monitoring/timeseries_descriptors.rb +31 -0
  104. data/lib/fog/google/models/sql/backup_run.rb +34 -0
  105. data/lib/fog/google/models/sql/backup_runs.rb +38 -0
  106. data/lib/fog/google/models/sql/flag.rb +22 -0
  107. data/lib/fog/google/models/sql/flags.rb +21 -0
  108. data/lib/fog/google/models/sql/instance.rb +353 -0
  109. data/lib/fog/google/models/sql/instances.rb +39 -0
  110. data/lib/fog/google/models/sql/operation.rb +61 -0
  111. data/lib/fog/google/models/sql/operations.rb +49 -0
  112. data/lib/fog/google/models/sql/ssl_cert.rb +73 -0
  113. data/lib/fog/google/models/sql/ssl_certs.rb +49 -0
  114. data/lib/fog/google/models/sql/tier.rb +20 -0
  115. data/lib/fog/google/models/sql/tiers.rb +21 -0
  116. data/lib/fog/google/models/storage/directories.rb +39 -0
  117. data/lib/fog/google/models/storage/directory.rb +74 -0
  118. data/lib/fog/google/models/storage/file.rb +144 -0
  119. data/lib/fog/google/models/storage/files.rb +104 -0
  120. data/lib/fog/google/monitoring.rb +87 -0
  121. data/lib/fog/google/parsers/storage/access_control_list.rb +44 -0
  122. data/lib/fog/google/parsers/storage/copy_object.rb +18 -0
  123. data/lib/fog/google/parsers/storage/get_bucket.rb +58 -0
  124. data/lib/fog/google/parsers/storage/get_bucket_logging.rb +36 -0
  125. data/lib/fog/google/parsers/storage/get_bucket_object_versions.rb +84 -0
  126. data/lib/fog/google/parsers/storage/get_bucket_versioning.rb +20 -0
  127. data/lib/fog/google/parsers/storage/get_request_payment.rb +16 -0
  128. data/lib/fog/google/parsers/storage/get_service.rb +28 -0
  129. data/lib/fog/google/requests/compute/add_backend_service_backends.rb +29 -0
  130. data/lib/fog/google/requests/compute/add_region_view_resources.rb +27 -0
  131. data/lib/fog/google/requests/compute/add_server_access_config.rb +32 -0
  132. data/lib/fog/google/requests/compute/add_target_pool_health_checks.rb +27 -0
  133. data/lib/fog/google/requests/compute/add_target_pool_instances.rb +27 -0
  134. data/lib/fog/google/requests/compute/add_url_map_host_rules.rb +25 -0
  135. data/lib/fog/google/requests/compute/add_url_map_path_matchers.rb +29 -0
  136. data/lib/fog/google/requests/compute/add_zone_view_resources.rb +27 -0
  137. data/lib/fog/google/requests/compute/attach_disk.rb +34 -0
  138. data/lib/fog/google/requests/compute/delete_address.rb +24 -0
  139. data/lib/fog/google/requests/compute/delete_backend_service.rb +43 -0
  140. data/lib/fog/google/requests/compute/delete_disk.rb +48 -0
  141. data/lib/fog/google/requests/compute/delete_firewall.rb +23 -0
  142. data/lib/fog/google/requests/compute/delete_forwarding_rule.rb +49 -0
  143. data/lib/fog/google/requests/compute/delete_global_forwarding_rule.rb +48 -0
  144. data/lib/fog/google/requests/compute/delete_global_operation.rb +25 -0
  145. data/lib/fog/google/requests/compute/delete_http_health_check.rb +41 -0
  146. data/lib/fog/google/requests/compute/delete_image.rb +42 -0
  147. data/lib/fog/google/requests/compute/delete_network.rb +23 -0
  148. data/lib/fog/google/requests/compute/delete_region_operation.rb +29 -0
  149. data/lib/fog/google/requests/compute/delete_region_view.rb +24 -0
  150. data/lib/fog/google/requests/compute/delete_route.rb +23 -0
  151. data/lib/fog/google/requests/compute/delete_server.rb +69 -0
  152. data/lib/fog/google/requests/compute/delete_server_access_config.rb +26 -0
  153. data/lib/fog/google/requests/compute/delete_snapshot.rb +23 -0
  154. data/lib/fog/google/requests/compute/delete_target_http_proxy.rb +43 -0
  155. data/lib/fog/google/requests/compute/delete_target_instance.rb +48 -0
  156. data/lib/fog/google/requests/compute/delete_target_pool.rb +49 -0
  157. data/lib/fog/google/requests/compute/delete_url_map.rb +43 -0
  158. data/lib/fog/google/requests/compute/delete_zone_operation.rb +29 -0
  159. data/lib/fog/google/requests/compute/delete_zone_view.rb +24 -0
  160. data/lib/fog/google/requests/compute/detach_disk.rb +25 -0
  161. data/lib/fog/google/requests/compute/get_address.rb +24 -0
  162. data/lib/fog/google/requests/compute/get_backend_service.rb +26 -0
  163. data/lib/fog/google/requests/compute/get_backend_service_health.rb +27 -0
  164. data/lib/fog/google/requests/compute/get_backend_services.rb +23 -0
  165. data/lib/fog/google/requests/compute/get_disk.rb +52 -0
  166. data/lib/fog/google/requests/compute/get_disk_type.rb +42 -0
  167. data/lib/fog/google/requests/compute/get_firewall.rb +23 -0
  168. data/lib/fog/google/requests/compute/get_forwarding_rule.rb +46 -0
  169. data/lib/fog/google/requests/compute/get_global_forwarding_rule.rb +32 -0
  170. data/lib/fog/google/requests/compute/get_global_operation.rb +50 -0
  171. data/lib/fog/google/requests/compute/get_http_health_check.rb +39 -0
  172. data/lib/fog/google/requests/compute/get_image.rb +36 -0
  173. data/lib/fog/google/requests/compute/get_machine_type.rb +43 -0
  174. data/lib/fog/google/requests/compute/get_network.rb +23 -0
  175. data/lib/fog/google/requests/compute/get_project.rb +22 -0
  176. data/lib/fog/google/requests/compute/get_region.rb +37 -0
  177. data/lib/fog/google/requests/compute/get_region_operation.rb +55 -0
  178. data/lib/fog/google/requests/compute/get_region_view.rb +24 -0
  179. data/lib/fog/google/requests/compute/get_route.rb +23 -0
  180. data/lib/fog/google/requests/compute/get_server.rb +75 -0
  181. data/lib/fog/google/requests/compute/get_server_serial_port_output.rb +24 -0
  182. data/lib/fog/google/requests/compute/get_snapshot.rb +27 -0
  183. data/lib/fog/google/requests/compute/get_target_http_proxy.rb +27 -0
  184. data/lib/fog/google/requests/compute/get_target_instance.rb +32 -0
  185. data/lib/fog/google/requests/compute/get_target_pool.rb +40 -0
  186. data/lib/fog/google/requests/compute/get_target_pool_health.rb +29 -0
  187. data/lib/fog/google/requests/compute/get_url_map.rb +27 -0
  188. data/lib/fog/google/requests/compute/get_zone.rb +36 -0
  189. data/lib/fog/google/requests/compute/get_zone_operation.rb +55 -0
  190. data/lib/fog/google/requests/compute/get_zone_view.rb +24 -0
  191. data/lib/fog/google/requests/compute/insert_address.rb +25 -0
  192. data/lib/fog/google/requests/compute/insert_backend_service.rb +63 -0
  193. data/lib/fog/google/requests/compute/insert_disk.rb +113 -0
  194. data/lib/fog/google/requests/compute/insert_firewall.rb +43 -0
  195. data/lib/fog/google/requests/compute/insert_forwarding_rule.rb +60 -0
  196. data/lib/fog/google/requests/compute/insert_global_forwarding_rule.rb +56 -0
  197. data/lib/fog/google/requests/compute/insert_http_health_check.rb +59 -0
  198. data/lib/fog/google/requests/compute/insert_image.rb +64 -0
  199. data/lib/fog/google/requests/compute/insert_network.rb +29 -0
  200. data/lib/fog/google/requests/compute/insert_region_view.rb +25 -0
  201. data/lib/fog/google/requests/compute/insert_route.rb +35 -0
  202. data/lib/fog/google/requests/compute/insert_server.rb +191 -0
  203. data/lib/fog/google/requests/compute/insert_snapshot.rb +40 -0
  204. data/lib/fog/google/requests/compute/insert_target_http_proxy.rb +52 -0
  205. data/lib/fog/google/requests/compute/insert_target_instance.rb +55 -0
  206. data/lib/fog/google/requests/compute/insert_target_pool.rb +58 -0
  207. data/lib/fog/google/requests/compute/insert_url_map.rb +55 -0
  208. data/lib/fog/google/requests/compute/insert_zone_view.rb +27 -0
  209. data/lib/fog/google/requests/compute/list_addresses.rb +23 -0
  210. data/lib/fog/google/requests/compute/list_aggregated_addresses.rb +23 -0
  211. data/lib/fog/google/requests/compute/list_aggregated_disk_types.rb +40 -0
  212. data/lib/fog/google/requests/compute/list_aggregated_disks.rb +40 -0
  213. data/lib/fog/google/requests/compute/list_aggregated_machine_types.rb +22 -0
  214. data/lib/fog/google/requests/compute/list_aggregated_servers.rb +40 -0
  215. data/lib/fog/google/requests/compute/list_backend_services.rb +29 -0
  216. data/lib/fog/google/requests/compute/list_disk_types.rb +46 -0
  217. data/lib/fog/google/requests/compute/list_disks.rb +29 -0
  218. data/lib/fog/google/requests/compute/list_firewalls.rb +22 -0
  219. data/lib/fog/google/requests/compute/list_forwarding_rules.rb +29 -0
  220. data/lib/fog/google/requests/compute/list_global_forwarding_rules.rb +30 -0
  221. data/lib/fog/google/requests/compute/list_global_operations.rb +24 -0
  222. data/lib/fog/google/requests/compute/list_http_health_checks.rb +29 -0
  223. data/lib/fog/google/requests/compute/list_images.rb +29 -0
  224. data/lib/fog/google/requests/compute/list_machine_types.rb +30 -0
  225. data/lib/fog/google/requests/compute/list_networks.rb +22 -0
  226. data/lib/fog/google/requests/compute/list_region_operations.rb +25 -0
  227. data/lib/fog/google/requests/compute/list_region_view_resources.rb +25 -0
  228. data/lib/fog/google/requests/compute/list_region_views.rb +23 -0
  229. data/lib/fog/google/requests/compute/list_regions.rb +85 -0
  230. data/lib/fog/google/requests/compute/list_routes.rb +22 -0
  231. data/lib/fog/google/requests/compute/list_servers.rb +31 -0
  232. data/lib/fog/google/requests/compute/list_snapshots.rb +23 -0
  233. data/lib/fog/google/requests/compute/list_target_http_proxies.rb +30 -0
  234. data/lib/fog/google/requests/compute/list_target_instances.rb +30 -0
  235. data/lib/fog/google/requests/compute/list_target_pools.rb +29 -0
  236. data/lib/fog/google/requests/compute/list_url_maps.rb +29 -0
  237. data/lib/fog/google/requests/compute/list_zone_operations.rb +25 -0
  238. data/lib/fog/google/requests/compute/list_zone_view_resources.rb +25 -0
  239. data/lib/fog/google/requests/compute/list_zone_views.rb +23 -0
  240. data/lib/fog/google/requests/compute/list_zones.rb +28 -0
  241. data/lib/fog/google/requests/compute/remove_target_pool_health_checks.rb +27 -0
  242. data/lib/fog/google/requests/compute/remove_target_pool_instance.rb +27 -0
  243. data/lib/fog/google/requests/compute/remove_target_pool_instances.rb +27 -0
  244. data/lib/fog/google/requests/compute/reset_server.rb +24 -0
  245. data/lib/fog/google/requests/compute/set_common_instance_metadata.rb +26 -0
  246. data/lib/fog/google/requests/compute/set_forwarding_rule_target.rb +27 -0
  247. data/lib/fog/google/requests/compute/set_global_forwarding_rule_target.rb +27 -0
  248. data/lib/fog/google/requests/compute/set_metadata.rb +39 -0
  249. data/lib/fog/google/requests/compute/set_server_disk_auto_delete.rb +26 -0
  250. data/lib/fog/google/requests/compute/set_server_scheduling.rb +29 -0
  251. data/lib/fog/google/requests/compute/set_tags.rb +24 -0
  252. data/lib/fog/google/requests/compute/set_target_http_proxy_url_map.rb +27 -0
  253. data/lib/fog/google/requests/compute/start_server.rb +24 -0
  254. data/lib/fog/google/requests/compute/stop_server.rb +24 -0
  255. data/lib/fog/google/requests/compute/update_url_map.rb +39 -0
  256. data/lib/fog/google/requests/compute/validate_url_map.rb +24 -0
  257. data/lib/fog/google/requests/dns/create_change.rb +64 -0
  258. data/lib/fog/google/requests/dns/create_managed_zone.rb +82 -0
  259. data/lib/fog/google/requests/dns/delete_managed_zone.rb +35 -0
  260. data/lib/fog/google/requests/dns/get_change.rb +42 -0
  261. data/lib/fog/google/requests/dns/get_managed_zone.rb +37 -0
  262. data/lib/fog/google/requests/dns/get_project.rb +42 -0
  263. data/lib/fog/google/requests/dns/list_changes.rb +41 -0
  264. data/lib/fog/google/requests/dns/list_managed_zones.rb +31 -0
  265. data/lib/fog/google/requests/dns/list_resource_record_sets.rb +50 -0
  266. data/lib/fog/google/requests/monitoring/list_metric_descriptors.rb +191 -0
  267. data/lib/fog/google/requests/monitoring/list_timeseries.rb +68 -0
  268. data/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb +87 -0
  269. data/lib/fog/google/requests/sql/clone_instance.rb +84 -0
  270. data/lib/fog/google/requests/sql/delete_instance.rb +67 -0
  271. data/lib/fog/google/requests/sql/delete_ssl_cert.rb +68 -0
  272. data/lib/fog/google/requests/sql/export_instance.rb +56 -0
  273. data/lib/fog/google/requests/sql/get_backup_run.rb +30 -0
  274. data/lib/fog/google/requests/sql/get_instance.rb +48 -0
  275. data/lib/fog/google/requests/sql/get_operation.rb +66 -0
  276. data/lib/fog/google/requests/sql/get_ssl_cert.rb +66 -0
  277. data/lib/fog/google/requests/sql/import_instance.rb +55 -0
  278. data/lib/fog/google/requests/sql/insert_instance.rb +165 -0
  279. data/lib/fog/google/requests/sql/insert_ssl_cert.rb +80 -0
  280. data/lib/fog/google/requests/sql/list_backup_runs.rb +30 -0
  281. data/lib/fog/google/requests/sql/list_flags.rb +143 -0
  282. data/lib/fog/google/requests/sql/list_instances.rb +32 -0
  283. data/lib/fog/google/requests/sql/list_operations.rb +52 -0
  284. data/lib/fog/google/requests/sql/list_ssl_certs.rb +51 -0
  285. data/lib/fog/google/requests/sql/list_tiers.rb +82 -0
  286. data/lib/fog/google/requests/sql/reset_instance_ssl_config.rb +49 -0
  287. data/lib/fog/google/requests/sql/restart_instance.rb +47 -0
  288. data/lib/fog/google/requests/sql/restore_instance_backup.rb +30 -0
  289. data/lib/fog/google/requests/sql/set_instance_root_password.rb +54 -0
  290. data/lib/fog/google/requests/sql/update_instance.rb +132 -0
  291. data/lib/fog/google/requests/storage/copy_object.rb +68 -0
  292. data/lib/fog/google/requests/storage/delete_bucket.rb +41 -0
  293. data/lib/fog/google/requests/storage/delete_object.rb +46 -0
  294. data/lib/fog/google/requests/storage/get_bucket.rb +106 -0
  295. data/lib/fog/google/requests/storage/get_bucket_acl.rb +59 -0
  296. data/lib/fog/google/requests/storage/get_object.rb +108 -0
  297. data/lib/fog/google/requests/storage/get_object_acl.rb +70 -0
  298. data/lib/fog/google/requests/storage/get_object_http_url.rb +44 -0
  299. data/lib/fog/google/requests/storage/get_object_https_url.rb +44 -0
  300. data/lib/fog/google/requests/storage/get_object_torrent.rb +45 -0
  301. data/lib/fog/google/requests/storage/get_object_url.rb +33 -0
  302. data/lib/fog/google/requests/storage/get_service.rb +48 -0
  303. data/lib/fog/google/requests/storage/head_object.rb +60 -0
  304. data/lib/fog/google/requests/storage/put_bucket.rb +71 -0
  305. data/lib/fog/google/requests/storage/put_bucket_acl.rb +58 -0
  306. data/lib/fog/google/requests/storage/put_object.rb +89 -0
  307. data/lib/fog/google/requests/storage/put_object_acl.rb +51 -0
  308. data/lib/fog/google/requests/storage/put_object_url.rb +50 -0
  309. data/lib/fog/google/sql.rb +130 -0
  310. data/lib/fog/google/storage.rb +298 -0
  311. data/lib/fog/google/version.rb +5 -0
  312. data/spec/minitest_helper.rb +31 -0
  313. data/tests/credentials_tests.rb +73 -0
  314. data/tests/helper.rb +126 -0
  315. data/tests/helpers/collection_helper.rb +97 -0
  316. data/tests/helpers/compute/flavors_helper.rb +32 -0
  317. data/tests/helpers/compute/server_helper.rb +25 -0
  318. data/tests/helpers/compute/servers_helper.rb +10 -0
  319. data/tests/helpers/formats_helper.rb +98 -0
  320. data/tests/helpers/formats_helper_tests.rb +110 -0
  321. data/tests/helpers/mock_helper.rb +18 -0
  322. data/tests/helpers/model_helper.rb +31 -0
  323. data/tests/helpers/responds_to_helper.rb +11 -0
  324. data/tests/helpers/schema_validator_tests.rb +107 -0
  325. data/tests/helpers/succeeds_helper.rb +9 -0
  326. data/tests/lorem.txt +1 -0
  327. data/tests/models/compute/backend_service_tests.rb +6 -0
  328. data/tests/models/compute/backend_services_tests.rb +8 -0
  329. data/tests/models/compute/disk_tests.rb +9 -0
  330. data/tests/models/compute/disk_types_tests.rb +22 -0
  331. data/tests/models/compute/disks_tests.rb +9 -0
  332. data/tests/models/compute/forwarding_rule_tests.rb +8 -0
  333. data/tests/models/compute/forwarding_rules_tests.rb +8 -0
  334. data/tests/models/compute/global_forwarding_rule_tests.rb +7 -0
  335. data/tests/models/compute/global_forwarding_rules_tests.rb +7 -0
  336. data/tests/models/compute/http_health_check_tests.rb +5 -0
  337. data/tests/models/compute/http_health_checks_tests.rb +5 -0
  338. data/tests/models/compute/image_tests.rb +6 -0
  339. data/tests/models/compute/images_tests.rb +6 -0
  340. data/tests/models/compute/region_tests.rb +10 -0
  341. data/tests/models/compute/regions_tests.rb +19 -0
  342. data/tests/models/compute/server_tests.rb +37 -0
  343. data/tests/models/compute/servers_tests.rb +14 -0
  344. data/tests/models/compute/target_http_proxies_tests.rb +7 -0
  345. data/tests/models/compute/target_http_proxy_test.rb +6 -0
  346. data/tests/models/compute/target_instance_tests.rb +7 -0
  347. data/tests/models/compute/target_instances_tests.rb +7 -0
  348. data/tests/models/compute/target_pool_tests.rb +12 -0
  349. data/tests/models/compute/target_pools_tests.rb +11 -0
  350. data/tests/models/compute/url_map_tests.rb +6 -0
  351. data/tests/models/compute/url_maps_tests.rb +7 -0
  352. data/tests/models/dns/change_tests.rb +28 -0
  353. data/tests/models/dns/changes_tests.rb +36 -0
  354. data/tests/models/dns/projects_tests.rb +12 -0
  355. data/tests/models/dns/record_tests.rb +42 -0
  356. data/tests/models/dns/records_tests.rb +36 -0
  357. data/tests/models/dns/zone_tests.rb +28 -0
  358. data/tests/models/dns/zones_tests.rb +14 -0
  359. data/tests/models/monitoring/metric_descriptors_tests.rb +12 -0
  360. data/tests/models/monitoring/timeseries_collection_tests.rb +12 -0
  361. data/tests/models/monitoring/timeseries_descriptors_tests.rb +13 -0
  362. data/tests/models/sql/flags_tests.rb +12 -0
  363. data/tests/models/sql/instance_tests.rb +56 -0
  364. data/tests/models/sql/instances_tests.rb +32 -0
  365. data/tests/models/sql/operation_tests.rb +25 -0
  366. data/tests/models/sql/operations_tests.rb +38 -0
  367. data/tests/models/sql/ssl_cert_tests.rb +24 -0
  368. data/tests/models/sql/ssl_certs_tests.rb +39 -0
  369. data/tests/models/sql/tiers_tests.rb +12 -0
  370. data/tests/requests/compute/backend_service_tests.rb +83 -0
  371. data/tests/requests/compute/disk_tests.rb +74 -0
  372. data/tests/requests/compute/disk_type_tests.rb +45 -0
  373. data/tests/requests/compute/firewall_tests.rb +88 -0
  374. data/tests/requests/compute/forwarding_rules_tests.rb +83 -0
  375. data/tests/requests/compute/global_forwarding_rules_tests.rb +83 -0
  376. data/tests/requests/compute/http_health_checks_tests.rb +83 -0
  377. data/tests/requests/compute/image_tests.rb +83 -0
  378. data/tests/requests/compute/network_tests.rb +75 -0
  379. data/tests/requests/compute/operation_tests.rb +20 -0
  380. data/tests/requests/compute/region_tests.rb +39 -0
  381. data/tests/requests/compute/server_tests.rb +84 -0
  382. data/tests/requests/compute/target_http_proxies_test.rb +79 -0
  383. data/tests/requests/compute/target_instances_tests.rb +83 -0
  384. data/tests/requests/compute/target_pools_tests.rb +82 -0
  385. data/tests/requests/compute/url_maps_tests.rb +82 -0
  386. data/tests/requests/compute/zone_tests.rb +37 -0
  387. data/tests/requests/dns/change_tests.rb +86 -0
  388. data/tests/requests/dns/managed_zone_tests.rb +66 -0
  389. data/tests/requests/dns/project_tests.rb +29 -0
  390. data/tests/requests/dns/record_tests.rb +49 -0
  391. data/tests/requests/monitoring/metric_descriptor_tests.rb +25 -0
  392. data/tests/requests/monitoring/timeseries_collection_tests.rb +25 -0
  393. data/tests/requests/monitoring/timeseries_descriptor_tests.rb +26 -0
  394. data/tests/requests/sql/flag_tests.rb +27 -0
  395. data/tests/requests/sql/instance_tests.rb +129 -0
  396. data/tests/requests/sql/operation_tests.rb +42 -0
  397. data/tests/requests/sql/ssl_cert_tests.rb +61 -0
  398. data/tests/requests/sql/tier_tests.rb +25 -0
  399. data/tests/requests/storage/bucket_tests.rb +77 -0
  400. data/tests/requests/storage/object_tests.rb +84 -0
  401. metadata +625 -0
@@ -0,0 +1,68 @@
1
+ module Fog
2
+ module Storage
3
+ class Google
4
+ class Real
5
+ require 'fog/google/parsers/storage/copy_object'
6
+
7
+ # Copy an object from one Google Storage bucket to another
8
+ #
9
+ # ==== Parameters
10
+ # * source_bucket_name<~String> - Name of source bucket
11
+ # * source_object_name<~String> - Name of source object
12
+ # * target_bucket_name<~String> - Name of bucket to create copy in
13
+ # * target_object_name<~String> - Name for new copy of object
14
+ # * options<~Hash>:
15
+ # * 'x-goog-metadata-directive'<~String> - Specifies whether to copy metadata from source or replace with data in request. Must be in ['COPY', 'REPLACE']
16
+ # * 'x-goog-copy_source-if-match'<~String> - Copies object if its etag matches this value
17
+ # * 'x-goog-copy_source-if-modified_since'<~Time> - Copies object it it has been modified since this time
18
+ # * 'x-goog-copy_source-if-none-match'<~String> - Copies object if its etag does not match this value
19
+ # * 'x-goog-copy_source-if-unmodified-since'<~Time> - Copies object it it has not been modified since this time
20
+ #
21
+ # ==== Returns
22
+ # * response<~Excon::Response>:
23
+ # * body<~Hash>:
24
+ # * 'ETag'<~String> - etag of new object
25
+ # * 'LastModified'<~Time> - date object was last modified
26
+ #
27
+ def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
28
+ headers = { 'x-goog-copy-source' => "/#{source_bucket_name}/#{source_object_name}" }.merge(options)
29
+ request({
30
+ :expects => 200,
31
+ :headers => headers,
32
+ :host => "#{target_bucket_name}.#{@host}",
33
+ :method => 'PUT',
34
+ :parser => Fog::Parsers::Storage::Google::CopyObject.new,
35
+ :path => CGI.escape(target_object_name)
36
+ })
37
+ end
38
+ end
39
+
40
+ class Mock
41
+ def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
42
+ response = Excon::Response.new
43
+ source_bucket = self.data[:buckets][source_bucket_name]
44
+ source_object = source_bucket && source_bucket[:objects][source_object_name]
45
+ target_bucket = self.data[:buckets][target_bucket_name]
46
+
47
+ if source_object && target_bucket
48
+ response.status = 200
49
+ target_object = source_object.dup
50
+ target_object.merge!({
51
+ 'Name' => target_object_name
52
+ })
53
+ target_bucket[:objects][target_object_name] = target_object
54
+ response.body = {
55
+ 'ETag' => target_object['ETag'],
56
+ 'LastModified' => Time.parse(target_object['Last-Modified'])
57
+ }
58
+ else
59
+ response.status = 404
60
+ raise(Excon::Errors.status_error({:expects => 200}, response))
61
+ end
62
+
63
+ response
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,41 @@
1
+ module Fog
2
+ module Storage
3
+ class Google
4
+ class Real
5
+ # Delete an Google Storage bucket
6
+ #
7
+ # ==== Parameters
8
+ # * bucket_name<~String> - name of bucket to delete
9
+ #
10
+ # ==== Returns
11
+ # * response<~Excon::Response>:
12
+ # * status<~Integer> - 204
13
+ def delete_bucket(bucket_name)
14
+ request({
15
+ :expects => 204,
16
+ :headers => {},
17
+ :host => "#{bucket_name}.#{@host}",
18
+ :method => 'DELETE'
19
+ })
20
+ end
21
+ end
22
+
23
+ class Mock
24
+ def delete_bucket(bucket_name)
25
+ response = Excon::Response.new
26
+ if self.data[:buckets][bucket_name].nil?
27
+ response.status = 404
28
+ raise(Excon::Errors.status_error({:expects => 204}, response))
29
+ elsif self.data[:buckets][bucket_name] && !self.data[:buckets][bucket_name][:objects].empty?
30
+ response.status = 409
31
+ raise(Excon::Errors.status_error({:expects => 204}, response))
32
+ else
33
+ self.data[:buckets].delete(bucket_name)
34
+ response.status = 204
35
+ end
36
+ response
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,46 @@
1
+ module Fog
2
+ module Storage
3
+ class Google
4
+ class Real
5
+ # Delete an object from Google Storage
6
+ #
7
+ # ==== Parameters
8
+ # * bucket_name<~String> - Name of bucket containing object to delete
9
+ # * object_name<~String> - Name of object to delete
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * status<~Integer> - 204
14
+ def delete_object(bucket_name, object_name)
15
+ request({
16
+ :expects => 204,
17
+ :headers => {},
18
+ :host => "#{bucket_name}.#{@host}",
19
+ :idempotent => true,
20
+ :method => 'DELETE',
21
+ :path => CGI.escape(object_name)
22
+ })
23
+ end
24
+ end
25
+
26
+ class Mock
27
+ def delete_object(bucket_name, object_name)
28
+ response = Excon::Response.new
29
+ if bucket = self.data[:buckets][bucket_name]
30
+ if object = bucket[:objects][object_name]
31
+ response.status = 204
32
+ bucket[:objects].delete(object_name)
33
+ else
34
+ response.status = 404
35
+ raise(Excon::Errors.status_error({:expects => 204}, response))
36
+ end
37
+ else
38
+ response.status = 404
39
+ raise(Excon::Errors.status_error({:expects => 204}, response))
40
+ end
41
+ response
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,106 @@
1
+ require 'pp'
2
+ module Fog
3
+ module Storage
4
+ class Google
5
+ class Real
6
+ require 'fog/google/parsers/storage/get_bucket'
7
+
8
+ # List information about objects in an Google Storage bucket
9
+ #
10
+ # ==== Parameters
11
+ # * bucket_name<~String> - name of bucket to list object keys from
12
+ # * options<~Hash> - config arguments for list. Defaults to {}.
13
+ # * 'delimiter'<~String> - causes keys with the same string between the prefix
14
+ # value and the first occurence of delimiter to be rolled up
15
+ # * 'marker'<~String> - limits object keys to only those that appear
16
+ # lexicographically after its value.
17
+ # * 'max-keys'<~Integer> - limits number of object keys returned
18
+ # * 'prefix'<~String> - limits object keys to those beginning with its value.
19
+ #
20
+ # ==== Returns
21
+ # * response<~Excon::Response>:
22
+ # * body<~Hash>:
23
+ # * 'Delimeter'<~String> - Delimiter specified for query
24
+ # * 'IsTruncated'<~Boolean> - Whether or not the listing is truncated
25
+ # * 'Marker'<~String> - Marker specified for query
26
+ # * 'MaxKeys'<~Integer> - Maximum number of keys specified for query
27
+ # * 'Name'<~String> - Name of the bucket
28
+ # * 'Prefix'<~String> - Prefix specified for query
29
+ # * 'CommonPrefixes'<~Array> - Array of strings for common prefixes
30
+ # * 'Contents'<~Array>:
31
+ # * 'ETag'<~String>: Etag of object
32
+ # * 'Key'<~String>: Name of object
33
+ # * 'LastModified'<~String>: Timestamp of last modification of object
34
+ # * 'Owner'<~Hash>:
35
+ # * 'DisplayName'<~String> - Display name of object owner
36
+ # * 'ID'<~String> - Id of object owner
37
+ # * 'Size'<~Integer> - Size of object
38
+ #
39
+ def get_bucket(bucket_name, options = {})
40
+ unless bucket_name
41
+ raise ArgumentError.new('bucket_name is required')
42
+ end
43
+ request({
44
+ :expects => 200,
45
+ :headers => {},
46
+ :host => "#{bucket_name}.#{@host}",
47
+ :idempotent => true,
48
+ :method => 'GET',
49
+ :parser => Fog::Parsers::Storage::Google::GetBucket.new,
50
+ :query => options
51
+ })
52
+ end
53
+ end
54
+
55
+ class Mock
56
+ def get_bucket(bucket_name, options = {})
57
+ unless bucket_name
58
+ raise ArgumentError.new('bucket_name is required')
59
+ end
60
+ response = Excon::Response.new
61
+ name = /(\w+\.?)*/.match(bucket_name)
62
+ if bucket_name == name.to_s
63
+ if bucket = self.data[:buckets][bucket_name]
64
+ contents = bucket[:objects].values.sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
65
+ (options['prefix'] && object['Key'][0...options['prefix'].length] != options['prefix']) ||
66
+ (options['marker'] && object['Key'] <= options['marker'])
67
+ end.map do |object|
68
+ data = object.reject {|key, value| !['ETag', 'Key'].include?(key)}
69
+ data.merge!({
70
+ 'LastModified' => Time.parse(object['Last-Modified']),
71
+ 'Owner' => bucket['Owner'],
72
+ 'Size' => object['Content-Length'].to_i
73
+ })
74
+ data
75
+ end
76
+ max_keys = options['max-keys'] || 1000
77
+ size = [max_keys, 1000].min
78
+ truncated_contents = contents[0...size]
79
+
80
+ response.status = 200
81
+ response.body = {
82
+ 'CommonPrefixes' => [],
83
+ 'Contents' => truncated_contents,
84
+ 'IsTruncated' => truncated_contents.size != contents.size,
85
+ 'Marker' => options['marker'],
86
+ 'Name' => bucket['Name'],
87
+ 'Prefix' => options['prefix']
88
+ }
89
+ if options['max-keys'] && options['max-keys'] < response.body['Contents'].length
90
+ response.body['IsTruncated'] = true
91
+ response.body['Contents'] = response.body['Contents'][0...options['max-keys']]
92
+ end
93
+ else
94
+ response.status = 404
95
+ raise(Excon::Errors.status_error({:expects => 200}, response))
96
+ end
97
+ else
98
+ response.status = 400
99
+ raise(Excon::Errors.status_error({:expects => 200}, response))
100
+ end
101
+ response
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,59 @@
1
+ module Fog
2
+ module Storage
3
+ class Google
4
+ class Real
5
+ require 'fog/google/parsers/storage/access_control_list'
6
+
7
+ # Get access control list for an Google Storage bucket
8
+ #
9
+ # ==== Parameters
10
+ # * bucket_name<~String> - name of bucket to get access control list for
11
+ #
12
+ # ==== Returns
13
+ # * response<~Excon::Response>:
14
+ # * body<~Hash>:
15
+ # * 'AccessControlPolicy'<~Hash>
16
+ # * 'Owner'<~Hash>:
17
+ # * 'DisplayName'<~String> - Display name of object owner
18
+ # * 'ID'<~String> - Id of object owner
19
+ # * 'AccessControlList'<~Array>:
20
+ # * 'Grant'<~Hash>:
21
+ # * 'Grantee'<~Hash>:
22
+ # * 'DisplayName'<~String> - Display name of grantee
23
+ # * 'ID'<~String> - Id of grantee
24
+ # or
25
+ # * 'URI'<~String> - URI of group to grant access for
26
+ # * 'Permission'<~String> - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
27
+ #
28
+ def get_bucket_acl(bucket_name)
29
+ unless bucket_name
30
+ raise ArgumentError.new('bucket_name is required')
31
+ end
32
+ request({
33
+ :expects => 200,
34
+ :headers => {},
35
+ :host => "#{bucket_name}.#{@host}",
36
+ :idempotent => true,
37
+ :method => 'GET',
38
+ :parser => Fog::Parsers::Storage::Google::AccessControlList.new,
39
+ :query => {'acl' => nil}
40
+ })
41
+ end
42
+ end
43
+
44
+ class Mock
45
+ def get_bucket_acl(bucket_name)
46
+ response = Excon::Response.new
47
+ if acl = self.data[:acls][:bucket][bucket_name]
48
+ response.status = 200
49
+ response.body = acl
50
+ else
51
+ response.status = 404
52
+ raise(Excon::Errors.status_error({:expects => 200}, response))
53
+ end
54
+ response
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,108 @@
1
+ module Fog
2
+ module Storage
3
+ class Google
4
+ class Real
5
+ # Get an object from Google Storage
6
+ #
7
+ # ==== Parameters
8
+ # * bucket_name<~String> - Name of bucket to read from
9
+ # * object_name<~String> - Name of object to read
10
+ # * options<~Hash>:
11
+ # * 'If-Match'<~String> - Returns object only if its etag matches this value, otherwise returns 412 (Precondition Failed).
12
+ # * 'If-Modified-Since'<~Time> - Returns object only if it has been modified since this time, otherwise returns 304 (Not Modified).
13
+ # * 'If-None-Match'<~String> - Returns object only if its etag differs from this value, otherwise returns 304 (Not Modified)
14
+ # * 'If-Unmodified-Since'<~Time> - Returns object only if it has not been modified since this time, otherwise returns 412 (Precodition Failed).
15
+ # * 'Range'<~String> - Range of object to download
16
+ # * 'versionId'<~String> - specify a particular version to retrieve
17
+ #
18
+ # ==== Returns
19
+ # * response<~Excon::Response>:
20
+ # * body<~String> - Contents of object
21
+ # * headers<~Hash>:
22
+ # * 'Content-Length'<~String> - Size of object contents
23
+ # * 'Content-Type'<~String> - MIME type of object
24
+ # * 'ETag'<~String> - Etag of object
25
+ # * 'Last-Modified'<~String> - Last modified timestamp for object
26
+ #
27
+ def get_object(bucket_name, object_name, options = {}, &block)
28
+ unless bucket_name
29
+ raise ArgumentError.new('bucket_name is required')
30
+ end
31
+ unless object_name
32
+ raise ArgumentError.new('object_name is required')
33
+ end
34
+
35
+ params = { :headers => {} }
36
+ if version_id = options.delete('versionId')
37
+ params[:query] = {'versionId' => version_id}
38
+ end
39
+ params[:headers].merge!(options)
40
+ if options['If-Modified-Since']
41
+ params[:headers]['If-Modified-Since'] = Fog::Time.at(options['If-Modified-Since'].to_i).to_date_header
42
+ end
43
+ if options['If-Modified-Since']
44
+ params[:headers]['If-Unmodified-Since'] = Fog::Time.at(options['If-Unmodified-Since'].to_i).to_date_header
45
+ end
46
+
47
+ if block_given?
48
+ params[:response_block] = Proc.new
49
+ end
50
+
51
+ request(params.merge!({
52
+ :expects => 200,
53
+ :host => "#{bucket_name}.#{@host}",
54
+ :idempotent => true,
55
+ :method => 'GET',
56
+ :path => CGI.escape(object_name),
57
+ }))
58
+ end
59
+ end
60
+
61
+ class Mock
62
+ def get_object(bucket_name, object_name, options = {}, &block)
63
+ unless bucket_name
64
+ raise ArgumentError.new('bucket_name is required')
65
+ end
66
+ unless object_name
67
+ raise ArgumentError.new('object_name is required')
68
+ end
69
+ response = Excon::Response.new
70
+ if (bucket = self.data[:buckets][bucket_name]) && (object = bucket[:objects][object_name])
71
+ if options['If-Match'] && options['If-Match'] != object['ETag']
72
+ response.status = 412
73
+ elsif options['If-Modified-Since'] && options['If-Modified-Since'] >= Time.parse(object['Last-Modified'])
74
+ response.status = 304
75
+ elsif options['If-None-Match'] && options['If-None-Match'] == object['ETag']
76
+ response.status = 304
77
+ elsif options['If-Unmodified-Since'] && options['If-Unmodified-Since'] < Time.parse(object['Last-Modified'])
78
+ response.status = 412
79
+ else
80
+ response.status = 200
81
+ for key, value in object
82
+ case key
83
+ when 'Cache-Control', 'Content-Disposition', 'Content-Encoding', 'Content-Length', 'Content-MD5', 'Content-Type', 'ETag', 'Expires', 'Last-Modified', /^x-goog-meta-/
84
+ response.headers[key] = value
85
+ end
86
+ end
87
+ unless block_given?
88
+ response.body = object[:body]
89
+ else
90
+ data = StringIO.new(object[:body])
91
+ remaining = data.length
92
+ while remaining > 0
93
+ chunk = data.read([remaining, Excon::CHUNK_SIZE].min)
94
+ block.call(chunk)
95
+ remaining -= Excon::CHUNK_SIZE
96
+ end
97
+ end
98
+ end
99
+ else
100
+ response.status = 404
101
+ raise(Excon::Errors.status_error({:expects => 200}, response))
102
+ end
103
+ response
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,70 @@
1
+ module Fog
2
+ module Storage
3
+ class Google
4
+ class Real
5
+ require 'fog/google/parsers/storage/access_control_list'
6
+
7
+ # Get access control list for an Google Storage object
8
+ #
9
+ # ==== Parameters
10
+ # * bucket_name<~String> - name of bucket containing object
11
+ # * object_name<~String> - name of object to get access control list for
12
+ # * options<~Hash>:
13
+ # * 'versionId'<~String> - specify a particular version to retrieve
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'AccessControlPolicy'<~Hash>
19
+ # * 'Owner'<~Hash>:
20
+ # * 'DisplayName'<~String> - Display name of object owner
21
+ # * 'ID'<~String> - Id of object owner
22
+ # * 'AccessControlList'<~Array>:
23
+ # * 'Grant'<~Hash>:
24
+ # * 'Grantee'<~Hash>:
25
+ # * 'DisplayName'<~String> - Display name of grantee
26
+ # * 'ID'<~String> - Id of grantee
27
+ # or
28
+ # * 'URI'<~String> - URI of group to grant access for
29
+ # * 'Permission'<~String> - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
30
+ #
31
+ def get_object_acl(bucket_name, object_name, options = {})
32
+ unless bucket_name
33
+ raise ArgumentError.new('bucket_name is required')
34
+ end
35
+ unless object_name
36
+ raise ArgumentError.new('object_name is required')
37
+ end
38
+ query = {'acl' => nil}
39
+ if version_id = options.delete('versionId')
40
+ query['versionId'] = version_id
41
+ end
42
+ request({
43
+ :expects => 200,
44
+ :headers => {},
45
+ :host => "#{bucket_name}.#{@host}",
46
+ :idempotent => true,
47
+ :method => 'GET',
48
+ :parser => Fog::Parsers::Storage::Google::AccessControlList.new,
49
+ :path => CGI.escape(object_name),
50
+ :query => query
51
+ })
52
+ end
53
+ end
54
+
55
+ class Mock
56
+ def get_object_acl(bucket_name, object_name)
57
+ response = Excon::Response.new
58
+ if acl = self.data[:acls][:object][bucket_name] && self.data[:acls][:object][bucket_name][object_name]
59
+ response.status = 200
60
+ response.body = acl
61
+ else
62
+ response.status = 404
63
+ raise(Excon::Errors.status_error({:expects => 200}, response))
64
+ end
65
+ response
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end