gitlab-fog-google 1.13.0

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 (556) hide show
  1. checksums.yaml +7 -0
  2. data/.codecov.yml +2 -0
  3. data/.editorconfig +11 -0
  4. data/.fog.example +25 -0
  5. data/.gitignore +20 -0
  6. data/.gitlab-ci.yml +13 -0
  7. data/.hound.yml +2 -0
  8. data/.rubocop.yml +255 -0
  9. data/.ruby-gemset +1 -0
  10. data/.travis.yml +33 -0
  11. data/CHANGELOG.md +464 -0
  12. data/CONTRIBUTING.md +175 -0
  13. data/CONTRIBUTORS.md +95 -0
  14. data/Gemfile +13 -0
  15. data/LICENSE.md +20 -0
  16. data/MIGRATING.md +1 -0
  17. data/README.md +177 -0
  18. data/Rakefile +19 -0
  19. data/SECURITY.md +16 -0
  20. data/ci/.gitignore +1 -0
  21. data/ci/README.md +65 -0
  22. data/ci/build-head-pipeline.yml +173 -0
  23. data/ci/credentials.yml.template +28 -0
  24. data/ci/docker-image/Dockerfile +18 -0
  25. data/ci/integration-pipeline.yml +226 -0
  26. data/ci/pipeline-dev.yml +58 -0
  27. data/ci/tasks/run-int.sh +53 -0
  28. data/ci/tasks/run-int.yml +18 -0
  29. data/ci/tasks/utils.sh +10 -0
  30. data/examples/backend_services.rb +23 -0
  31. data/examples/bootstrap.rb +27 -0
  32. data/examples/create_instance.rb +73 -0
  33. data/examples/create_instance_with_attached_disk.rb +53 -0
  34. data/examples/dns/project.rb +7 -0
  35. data/examples/dns/zones.rb +43 -0
  36. data/examples/get_list_images.rb +42 -0
  37. data/examples/get_list_snapshots.rb +28 -0
  38. data/examples/image_create.rb +17 -0
  39. data/examples/l7_load_balance.rb +79 -0
  40. data/examples/load-balance.rb +116 -0
  41. data/examples/metadata.rb +40 -0
  42. data/examples/monitoring/metric_descriptors.rb +24 -0
  43. data/examples/monitoring/monitored_resource_descriptors.rb +24 -0
  44. data/examples/monitoring/timeseries_collection.rb +32 -0
  45. data/examples/network.rb +55 -0
  46. data/examples/precreated_client.rb +24 -0
  47. data/examples/pubsub/subscriptions.rb +54 -0
  48. data/examples/pubsub/topics.rb +33 -0
  49. data/examples/sql/flags.rb +11 -0
  50. data/examples/sql/instances.rb +38 -0
  51. data/examples/sql/operations.rb +24 -0
  52. data/examples/sql/ssl_certs.rb +32 -0
  53. data/examples/sql/tiers.rb +11 -0
  54. data/examples/storage.rb +49 -0
  55. data/examples/storage_json.rb +37 -0
  56. data/gitlab-fog-google.gemspec +44 -0
  57. data/lib/fog/bin/google.rb +97 -0
  58. data/lib/fog/compute/google.rb +304 -0
  59. data/lib/fog/compute/google/mock.rb +845 -0
  60. data/lib/fog/compute/google/models/address.rb +133 -0
  61. data/lib/fog/compute/google/models/addresses.rb +63 -0
  62. data/lib/fog/compute/google/models/backend_service.rb +86 -0
  63. data/lib/fog/compute/google/models/backend_services.rb +24 -0
  64. data/lib/fog/compute/google/models/disk.rb +155 -0
  65. data/lib/fog/compute/google/models/disk_type.rb +27 -0
  66. data/lib/fog/compute/google/models/disk_types.rb +42 -0
  67. data/lib/fog/compute/google/models/disks.rb +88 -0
  68. data/lib/fog/compute/google/models/firewall.rb +94 -0
  69. data/lib/fog/compute/google/models/firewalls.rb +24 -0
  70. data/lib/fog/compute/google/models/forwarding_rule.rb +79 -0
  71. data/lib/fog/compute/google/models/forwarding_rules.rb +44 -0
  72. data/lib/fog/compute/google/models/global_address.rb +58 -0
  73. data/lib/fog/compute/google/models/global_addresses.rb +46 -0
  74. data/lib/fog/compute/google/models/global_forwarding_rule.rb +78 -0
  75. data/lib/fog/compute/google/models/global_forwarding_rules.rb +24 -0
  76. data/lib/fog/compute/google/models/http_health_check.rb +104 -0
  77. data/lib/fog/compute/google/models/http_health_checks.rb +24 -0
  78. data/lib/fog/compute/google/models/image.rb +81 -0
  79. data/lib/fog/compute/google/models/images.rb +109 -0
  80. data/lib/fog/compute/google/models/instance_group.rb +90 -0
  81. data/lib/fog/compute/google/models/instance_group_manager.rb +51 -0
  82. data/lib/fog/compute/google/models/instance_group_managers.rb +45 -0
  83. data/lib/fog/compute/google/models/instance_groups.rb +63 -0
  84. data/lib/fog/compute/google/models/instance_template.rb +47 -0
  85. data/lib/fog/compute/google/models/instance_templates.rb +24 -0
  86. data/lib/fog/compute/google/models/machine_type.rb +23 -0
  87. data/lib/fog/compute/google/models/machine_types.rb +46 -0
  88. data/lib/fog/compute/google/models/network.rb +60 -0
  89. data/lib/fog/compute/google/models/networks.rb +24 -0
  90. data/lib/fog/compute/google/models/operation.rb +73 -0
  91. data/lib/fog/compute/google/models/operations.rb +45 -0
  92. data/lib/fog/compute/google/models/project.rb +28 -0
  93. data/lib/fog/compute/google/models/projects.rb +19 -0
  94. data/lib/fog/compute/google/models/region.rb +30 -0
  95. data/lib/fog/compute/google/models/regions.rb +24 -0
  96. data/lib/fog/compute/google/models/route.rb +49 -0
  97. data/lib/fog/compute/google/models/routes.rb +24 -0
  98. data/lib/fog/compute/google/models/server.rb +604 -0
  99. data/lib/fog/compute/google/models/servers.rb +120 -0
  100. data/lib/fog/compute/google/models/snapshot.rb +62 -0
  101. data/lib/fog/compute/google/models/snapshots.rb +32 -0
  102. data/lib/fog/compute/google/models/ssl_certificate.rb +42 -0
  103. data/lib/fog/compute/google/models/ssl_certificates.rb +24 -0
  104. data/lib/fog/compute/google/models/subnetwork.rb +83 -0
  105. data/lib/fog/compute/google/models/subnetworks.rb +43 -0
  106. data/lib/fog/compute/google/models/target_http_proxies.rb +24 -0
  107. data/lib/fog/compute/google/models/target_http_proxy.rb +73 -0
  108. data/lib/fog/compute/google/models/target_https_proxies.rb +24 -0
  109. data/lib/fog/compute/google/models/target_https_proxy.rb +105 -0
  110. data/lib/fog/compute/google/models/target_instance.rb +67 -0
  111. data/lib/fog/compute/google/models/target_instances.rb +46 -0
  112. data/lib/fog/compute/google/models/target_pool.rb +171 -0
  113. data/lib/fog/compute/google/models/target_pools.rb +43 -0
  114. data/lib/fog/compute/google/models/url_map.rb +121 -0
  115. data/lib/fog/compute/google/models/url_maps.rb +24 -0
  116. data/lib/fog/compute/google/models/zone.rb +25 -0
  117. data/lib/fog/compute/google/models/zones.rb +24 -0
  118. data/lib/fog/compute/google/real.rb +24 -0
  119. data/lib/fog/compute/google/requests/abandon_instances.rb +28 -0
  120. data/lib/fog/compute/google/requests/add_backend_service_backends.rb +19 -0
  121. data/lib/fog/compute/google/requests/add_instance_group_instances.rb +37 -0
  122. data/lib/fog/compute/google/requests/add_server_access_config.rb +32 -0
  123. data/lib/fog/compute/google/requests/add_target_pool_health_checks.rb +32 -0
  124. data/lib/fog/compute/google/requests/add_target_pool_instances.rb +30 -0
  125. data/lib/fog/compute/google/requests/attach_disk.rb +22 -0
  126. data/lib/fog/compute/google/requests/create_disk_snapshot.rb +24 -0
  127. data/lib/fog/compute/google/requests/delete_address.rb +24 -0
  128. data/lib/fog/compute/google/requests/delete_backend_service.rb +19 -0
  129. data/lib/fog/compute/google/requests/delete_disk.rb +25 -0
  130. data/lib/fog/compute/google/requests/delete_firewall.rb +19 -0
  131. data/lib/fog/compute/google/requests/delete_forwarding_rule.rb +20 -0
  132. data/lib/fog/compute/google/requests/delete_global_address.rb +19 -0
  133. data/lib/fog/compute/google/requests/delete_global_forwarding_rule.rb +19 -0
  134. data/lib/fog/compute/google/requests/delete_global_operation.rb +20 -0
  135. data/lib/fog/compute/google/requests/delete_http_health_check.rb +19 -0
  136. data/lib/fog/compute/google/requests/delete_image.rb +19 -0
  137. data/lib/fog/compute/google/requests/delete_instance_group.rb +19 -0
  138. data/lib/fog/compute/google/requests/delete_instance_group_manager.rb +19 -0
  139. data/lib/fog/compute/google/requests/delete_instance_template.rb +19 -0
  140. data/lib/fog/compute/google/requests/delete_network.rb +19 -0
  141. data/lib/fog/compute/google/requests/delete_region_operation.rb +22 -0
  142. data/lib/fog/compute/google/requests/delete_route.rb +23 -0
  143. data/lib/fog/compute/google/requests/delete_server.rb +19 -0
  144. data/lib/fog/compute/google/requests/delete_server_access_config.rb +22 -0
  145. data/lib/fog/compute/google/requests/delete_snapshot.rb +19 -0
  146. data/lib/fog/compute/google/requests/delete_ssl_certificate.rb +19 -0
  147. data/lib/fog/compute/google/requests/delete_subnetwork.rb +31 -0
  148. data/lib/fog/compute/google/requests/delete_target_http_proxy.rb +19 -0
  149. data/lib/fog/compute/google/requests/delete_target_https_proxy.rb +19 -0
  150. data/lib/fog/compute/google/requests/delete_target_instance.rb +20 -0
  151. data/lib/fog/compute/google/requests/delete_target_pool.rb +20 -0
  152. data/lib/fog/compute/google/requests/delete_url_map.rb +19 -0
  153. data/lib/fog/compute/google/requests/delete_zone_operation.rb +22 -0
  154. data/lib/fog/compute/google/requests/deprecate_image.rb +22 -0
  155. data/lib/fog/compute/google/requests/detach_disk.rb +20 -0
  156. data/lib/fog/compute/google/requests/expand_subnetwork_ip_cidr_range.rb +38 -0
  157. data/lib/fog/compute/google/requests/get_address.rb +24 -0
  158. data/lib/fog/compute/google/requests/get_backend_service.rb +19 -0
  159. data/lib/fog/compute/google/requests/get_backend_service_health.rb +24 -0
  160. data/lib/fog/compute/google/requests/get_disk.rb +24 -0
  161. data/lib/fog/compute/google/requests/get_disk_type.rb +19 -0
  162. data/lib/fog/compute/google/requests/get_firewall.rb +19 -0
  163. data/lib/fog/compute/google/requests/get_forwarding_rule.rb +22 -0
  164. data/lib/fog/compute/google/requests/get_global_address.rb +19 -0
  165. data/lib/fog/compute/google/requests/get_global_forwarding_rule.rb +19 -0
  166. data/lib/fog/compute/google/requests/get_global_operation.rb +23 -0
  167. data/lib/fog/compute/google/requests/get_http_health_check.rb +19 -0
  168. data/lib/fog/compute/google/requests/get_image.rb +20 -0
  169. data/lib/fog/compute/google/requests/get_image_from_family.rb +26 -0
  170. data/lib/fog/compute/google/requests/get_instance_group.rb +19 -0
  171. data/lib/fog/compute/google/requests/get_instance_group_manager.rb +19 -0
  172. data/lib/fog/compute/google/requests/get_instance_template.rb +19 -0
  173. data/lib/fog/compute/google/requests/get_machine_type.rb +20 -0
  174. data/lib/fog/compute/google/requests/get_network.rb +19 -0
  175. data/lib/fog/compute/google/requests/get_project.rb +19 -0
  176. data/lib/fog/compute/google/requests/get_region.rb +19 -0
  177. data/lib/fog/compute/google/requests/get_region_operation.rb +20 -0
  178. data/lib/fog/compute/google/requests/get_route.rb +22 -0
  179. data/lib/fog/compute/google/requests/get_server.rb +19 -0
  180. data/lib/fog/compute/google/requests/get_server_serial_port_output.rb +38 -0
  181. data/lib/fog/compute/google/requests/get_snapshot.rb +20 -0
  182. data/lib/fog/compute/google/requests/get_ssl_certificate.rb +19 -0
  183. data/lib/fog/compute/google/requests/get_subnetwork.rb +29 -0
  184. data/lib/fog/compute/google/requests/get_target_http_proxy.rb +19 -0
  185. data/lib/fog/compute/google/requests/get_target_https_proxy.rb +19 -0
  186. data/lib/fog/compute/google/requests/get_target_instance.rb +20 -0
  187. data/lib/fog/compute/google/requests/get_target_pool.rb +20 -0
  188. data/lib/fog/compute/google/requests/get_target_pool_health.rb +24 -0
  189. data/lib/fog/compute/google/requests/get_url_map.rb +19 -0
  190. data/lib/fog/compute/google/requests/get_zone.rb +19 -0
  191. data/lib/fog/compute/google/requests/get_zone_operation.rb +25 -0
  192. data/lib/fog/compute/google/requests/insert_address.rb +30 -0
  193. data/lib/fog/compute/google/requests/insert_backend_service.rb +23 -0
  194. data/lib/fog/compute/google/requests/insert_disk.rb +48 -0
  195. data/lib/fog/compute/google/requests/insert_firewall.rb +65 -0
  196. data/lib/fog/compute/google/requests/insert_forwarding_rule.rb +29 -0
  197. data/lib/fog/compute/google/requests/insert_global_address.rb +25 -0
  198. data/lib/fog/compute/google/requests/insert_global_forwarding_rule.rb +26 -0
  199. data/lib/fog/compute/google/requests/insert_http_health_check.rb +24 -0
  200. data/lib/fog/compute/google/requests/insert_image.rb +23 -0
  201. data/lib/fog/compute/google/requests/insert_instance_group.rb +37 -0
  202. data/lib/fog/compute/google/requests/insert_instance_group_manager.rb +31 -0
  203. data/lib/fog/compute/google/requests/insert_instance_template.rb +38 -0
  204. data/lib/fog/compute/google/requests/insert_network.rb +34 -0
  205. data/lib/fog/compute/google/requests/insert_route.rb +35 -0
  206. data/lib/fog/compute/google/requests/insert_server.rb +122 -0
  207. data/lib/fog/compute/google/requests/insert_ssl_certificate.rb +27 -0
  208. data/lib/fog/compute/google/requests/insert_subnetwork.rb +61 -0
  209. data/lib/fog/compute/google/requests/insert_target_http_proxy.rb +26 -0
  210. data/lib/fog/compute/google/requests/insert_target_https_proxy.rb +29 -0
  211. data/lib/fog/compute/google/requests/insert_target_instance.rb +25 -0
  212. data/lib/fog/compute/google/requests/insert_target_pool.rb +22 -0
  213. data/lib/fog/compute/google/requests/insert_url_map.rb +37 -0
  214. data/lib/fog/compute/google/requests/invalidate_url_map_cache.rb +24 -0
  215. data/lib/fog/compute/google/requests/list_addresses.rb +28 -0
  216. data/lib/fog/compute/google/requests/list_aggregated_addresses.rb +23 -0
  217. data/lib/fog/compute/google/requests/list_aggregated_disk_types.rb +24 -0
  218. data/lib/fog/compute/google/requests/list_aggregated_disks.rb +32 -0
  219. data/lib/fog/compute/google/requests/list_aggregated_forwarding_rules.rb +24 -0
  220. data/lib/fog/compute/google/requests/list_aggregated_instance_group_managers.rb +26 -0
  221. data/lib/fog/compute/google/requests/list_aggregated_instance_groups.rb +19 -0
  222. data/lib/fog/compute/google/requests/list_aggregated_machine_types.rb +24 -0
  223. data/lib/fog/compute/google/requests/list_aggregated_servers.rb +24 -0
  224. data/lib/fog/compute/google/requests/list_aggregated_subnetworks.rb +36 -0
  225. data/lib/fog/compute/google/requests/list_aggregated_target_instances.rb +26 -0
  226. data/lib/fog/compute/google/requests/list_aggregated_target_pools.rb +26 -0
  227. data/lib/fog/compute/google/requests/list_backend_services.rb +22 -0
  228. data/lib/fog/compute/google/requests/list_disk_types.rb +24 -0
  229. data/lib/fog/compute/google/requests/list_disks.rb +28 -0
  230. data/lib/fog/compute/google/requests/list_firewalls.rb +24 -0
  231. data/lib/fog/compute/google/requests/list_forwarding_rules.rb +25 -0
  232. data/lib/fog/compute/google/requests/list_global_addresses.rb +26 -0
  233. data/lib/fog/compute/google/requests/list_global_forwarding_rules.rb +24 -0
  234. data/lib/fog/compute/google/requests/list_global_operations.rb +27 -0
  235. data/lib/fog/compute/google/requests/list_http_health_checks.rb +24 -0
  236. data/lib/fog/compute/google/requests/list_images.rb +25 -0
  237. data/lib/fog/compute/google/requests/list_instance_group_instances.rb +21 -0
  238. data/lib/fog/compute/google/requests/list_instance_group_managers.rb +22 -0
  239. data/lib/fog/compute/google/requests/list_instance_groups.rb +19 -0
  240. data/lib/fog/compute/google/requests/list_instance_templates.rb +26 -0
  241. data/lib/fog/compute/google/requests/list_machine_types.rb +25 -0
  242. data/lib/fog/compute/google/requests/list_networks.rb +24 -0
  243. data/lib/fog/compute/google/requests/list_region_operations.rb +29 -0
  244. data/lib/fog/compute/google/requests/list_regions.rb +23 -0
  245. data/lib/fog/compute/google/requests/list_routes.rb +28 -0
  246. data/lib/fog/compute/google/requests/list_servers.rb +24 -0
  247. data/lib/fog/compute/google/requests/list_snapshots.rb +22 -0
  248. data/lib/fog/compute/google/requests/list_ssl_certificates.rb +26 -0
  249. data/lib/fog/compute/google/requests/list_subnetworks.rb +39 -0
  250. data/lib/fog/compute/google/requests/list_target_http_proxies.rb +25 -0
  251. data/lib/fog/compute/google/requests/list_target_https_proxies.rb +24 -0
  252. data/lib/fog/compute/google/requests/list_target_instances.rb +27 -0
  253. data/lib/fog/compute/google/requests/list_target_pools.rb +26 -0
  254. data/lib/fog/compute/google/requests/list_url_maps.rb +25 -0
  255. data/lib/fog/compute/google/requests/list_zone_operations.rb +28 -0
  256. data/lib/fog/compute/google/requests/list_zones.rb +26 -0
  257. data/lib/fog/compute/google/requests/patch_firewall.rb +27 -0
  258. data/lib/fog/compute/google/requests/patch_url_map.rb +21 -0
  259. data/lib/fog/compute/google/requests/recreate_instances.rb +28 -0
  260. data/lib/fog/compute/google/requests/remove_instance_group_instances.rb +37 -0
  261. data/lib/fog/compute/google/requests/remove_target_pool_health_checks.rb +30 -0
  262. data/lib/fog/compute/google/requests/remove_target_pool_instance.rb +30 -0
  263. data/lib/fog/compute/google/requests/remove_target_pool_instances.rb +30 -0
  264. data/lib/fog/compute/google/requests/reset_server.rb +19 -0
  265. data/lib/fog/compute/google/requests/reset_windows_password.rb +154 -0
  266. data/lib/fog/compute/google/requests/set_common_instance_metadata.rb +23 -0
  267. data/lib/fog/compute/google/requests/set_forwarding_rule_target.rb +23 -0
  268. data/lib/fog/compute/google/requests/set_global_forwarding_rule_target.rb +22 -0
  269. data/lib/fog/compute/google/requests/set_instance_template.rb +28 -0
  270. data/lib/fog/compute/google/requests/set_server_disk_auto_delete.rb +26 -0
  271. data/lib/fog/compute/google/requests/set_server_machine_type.rb +23 -0
  272. data/lib/fog/compute/google/requests/set_server_metadata.rb +39 -0
  273. data/lib/fog/compute/google/requests/set_server_scheduling.rb +24 -0
  274. data/lib/fog/compute/google/requests/set_server_tags.rb +25 -0
  275. data/lib/fog/compute/google/requests/set_snapshot_labels.rb +25 -0
  276. data/lib/fog/compute/google/requests/set_subnetwork_private_ip_google_access.rb +42 -0
  277. data/lib/fog/compute/google/requests/set_target_http_proxy_url_map.rb +24 -0
  278. data/lib/fog/compute/google/requests/set_target_https_proxy_ssl_certificates.rb +24 -0
  279. data/lib/fog/compute/google/requests/set_target_https_proxy_url_map.rb +24 -0
  280. data/lib/fog/compute/google/requests/set_target_pool_backup.rb +31 -0
  281. data/lib/fog/compute/google/requests/start_server.rb +19 -0
  282. data/lib/fog/compute/google/requests/stop_server.rb +19 -0
  283. data/lib/fog/compute/google/requests/update_firewall.rb +49 -0
  284. data/lib/fog/compute/google/requests/update_http_health_check.rb +25 -0
  285. data/lib/fog/compute/google/requests/update_url_map.rb +28 -0
  286. data/lib/fog/compute/google/requests/validate_url_map.rb +24 -0
  287. data/lib/fog/dns/google.rb +67 -0
  288. data/lib/fog/dns/google/mock.rb +33 -0
  289. data/lib/fog/dns/google/models/change.rb +38 -0
  290. data/lib/fog/dns/google/models/changes.rb +50 -0
  291. data/lib/fog/dns/google/models/project.rb +73 -0
  292. data/lib/fog/dns/google/models/projects.rb +23 -0
  293. data/lib/fog/dns/google/models/record.rb +108 -0
  294. data/lib/fog/dns/google/models/records.rb +53 -0
  295. data/lib/fog/dns/google/models/zone.rb +72 -0
  296. data/lib/fog/dns/google/models/zones.rb +32 -0
  297. data/lib/fog/dns/google/real.rb +19 -0
  298. data/lib/fog/dns/google/requests/create_change.rb +29 -0
  299. data/lib/fog/dns/google/requests/create_managed_zone.rb +29 -0
  300. data/lib/fog/dns/google/requests/delete_managed_zone.rb +23 -0
  301. data/lib/fog/dns/google/requests/get_change.rb +23 -0
  302. data/lib/fog/dns/google/requests/get_managed_zone.rb +23 -0
  303. data/lib/fog/dns/google/requests/get_project.rb +24 -0
  304. data/lib/fog/dns/google/requests/list_changes.rb +30 -0
  305. data/lib/fog/dns/google/requests/list_managed_zones.rb +26 -0
  306. data/lib/fog/dns/google/requests/list_resource_record_sets.rb +30 -0
  307. data/lib/fog/google.rb +53 -0
  308. data/lib/fog/google/mock.rb +14 -0
  309. data/lib/fog/google/models/monitoring/metric_descriptor.rb +23 -0
  310. data/lib/fog/google/models/monitoring/metric_descriptors.rb +43 -0
  311. data/lib/fog/google/models/monitoring/monitored_resource_descriptor.rb +20 -0
  312. data/lib/fog/google/models/monitoring/monitored_resource_descriptors.rb +37 -0
  313. data/lib/fog/google/models/monitoring/timeseries.rb +19 -0
  314. data/lib/fog/google/models/monitoring/timeseries_collection.rb +48 -0
  315. data/lib/fog/google/models/pubsub/received_message.rb +40 -0
  316. data/lib/fog/google/models/pubsub/subscription.rb +86 -0
  317. data/lib/fog/google/models/pubsub/subscriptions.rb +33 -0
  318. data/lib/fog/google/models/pubsub/topic.rb +71 -0
  319. data/lib/fog/google/models/pubsub/topics.rb +32 -0
  320. data/lib/fog/google/models/sql/backup_run.rb +37 -0
  321. data/lib/fog/google/models/sql/backup_runs.rb +38 -0
  322. data/lib/fog/google/models/sql/flag.rb +23 -0
  323. data/lib/fog/google/models/sql/flags.rb +21 -0
  324. data/lib/fog/google/models/sql/instance.rb +339 -0
  325. data/lib/fog/google/models/sql/instances.rb +39 -0
  326. data/lib/fog/google/models/sql/operation.rb +67 -0
  327. data/lib/fog/google/models/sql/operations.rb +47 -0
  328. data/lib/fog/google/models/sql/ssl_cert.rb +77 -0
  329. data/lib/fog/google/models/sql/ssl_certs.rb +49 -0
  330. data/lib/fog/google/models/sql/tier.rb +20 -0
  331. data/lib/fog/google/models/sql/tiers.rb +21 -0
  332. data/lib/fog/google/models/sql/user.rb +52 -0
  333. data/lib/fog/google/models/sql/users.rb +21 -0
  334. data/lib/fog/google/monitoring.rb +60 -0
  335. data/lib/fog/google/monitoring/mock.rb +35 -0
  336. data/lib/fog/google/monitoring/real.rb +20 -0
  337. data/lib/fog/google/pubsub.rb +69 -0
  338. data/lib/fog/google/pubsub/mock.rb +34 -0
  339. data/lib/fog/google/pubsub/real.rb +21 -0
  340. data/lib/fog/google/requests/monitoring/create_metric_descriptor.rb +51 -0
  341. data/lib/fog/google/requests/monitoring/create_timeseries.rb +29 -0
  342. data/lib/fog/google/requests/monitoring/delete_metric_descriptor.rb +19 -0
  343. data/lib/fog/google/requests/monitoring/get_metric_descriptor.rb +19 -0
  344. data/lib/fog/google/requests/monitoring/get_monitored_resource_descriptor.rb +19 -0
  345. data/lib/fog/google/requests/monitoring/list_metric_descriptors.rb +26 -0
  346. data/lib/fog/google/requests/monitoring/list_monitored_resource_descriptors.rb +29 -0
  347. data/lib/fog/google/requests/monitoring/list_timeseries.rb +55 -0
  348. data/lib/fog/google/requests/pubsub/acknowledge_subscription.rb +29 -0
  349. data/lib/fog/google/requests/pubsub/create_subscription.rb +37 -0
  350. data/lib/fog/google/requests/pubsub/create_topic.rb +23 -0
  351. data/lib/fog/google/requests/pubsub/delete_subscription.rb +21 -0
  352. data/lib/fog/google/requests/pubsub/delete_topic.rb +21 -0
  353. data/lib/fog/google/requests/pubsub/get_subscription.rb +21 -0
  354. data/lib/fog/google/requests/pubsub/get_topic.rb +21 -0
  355. data/lib/fog/google/requests/pubsub/list_subscriptions.rb +29 -0
  356. data/lib/fog/google/requests/pubsub/list_topics.rb +29 -0
  357. data/lib/fog/google/requests/pubsub/publish_topic.rb +28 -0
  358. data/lib/fog/google/requests/pubsub/pull_subscription.rb +40 -0
  359. data/lib/fog/google/requests/sql/clone_instance.rb +42 -0
  360. data/lib/fog/google/requests/sql/delete_backup_run.rb +23 -0
  361. data/lib/fog/google/requests/sql/delete_instance.rb +24 -0
  362. data/lib/fog/google/requests/sql/delete_ssl_cert.rb +24 -0
  363. data/lib/fog/google/requests/sql/delete_user.rb +24 -0
  364. data/lib/fog/google/requests/sql/export_instance.rb +55 -0
  365. data/lib/fog/google/requests/sql/get_backup_run.rb +23 -0
  366. data/lib/fog/google/requests/sql/get_instance.rb +24 -0
  367. data/lib/fog/google/requests/sql/get_operation.rb +24 -0
  368. data/lib/fog/google/requests/sql/get_ssl_cert.rb +24 -0
  369. data/lib/fog/google/requests/sql/import_instance.rb +44 -0
  370. data/lib/fog/google/requests/sql/insert_backup_run.rb +28 -0
  371. data/lib/fog/google/requests/sql/insert_instance.rb +28 -0
  372. data/lib/fog/google/requests/sql/insert_ssl_cert.rb +30 -0
  373. data/lib/fog/google/requests/sql/insert_user.rb +25 -0
  374. data/lib/fog/google/requests/sql/list_backup_runs.rb +27 -0
  375. data/lib/fog/google/requests/sql/list_flags.rb +24 -0
  376. data/lib/fog/google/requests/sql/list_instances.rb +27 -0
  377. data/lib/fog/google/requests/sql/list_operations.rb +28 -0
  378. data/lib/fog/google/requests/sql/list_ssl_certs.rb +24 -0
  379. data/lib/fog/google/requests/sql/list_tiers.rb +24 -0
  380. data/lib/fog/google/requests/sql/list_users.rb +24 -0
  381. data/lib/fog/google/requests/sql/reset_instance_ssl_config.rb +26 -0
  382. data/lib/fog/google/requests/sql/restart_instance.rb +24 -0
  383. data/lib/fog/google/requests/sql/restore_instance_backup.rb +31 -0
  384. data/lib/fog/google/requests/sql/update_instance.rb +31 -0
  385. data/lib/fog/google/requests/sql/update_user.rb +27 -0
  386. data/lib/fog/google/shared.rb +253 -0
  387. data/lib/fog/google/sql.rb +104 -0
  388. data/lib/fog/google/sql/mock.rb +40 -0
  389. data/lib/fog/google/sql/real.rb +21 -0
  390. data/lib/fog/google/version.rb +5 -0
  391. data/lib/fog/parsers/storage/google.rb +15 -0
  392. data/lib/fog/parsers/storage/google/access_control_list.rb +44 -0
  393. data/lib/fog/parsers/storage/google/copy_object.rb +18 -0
  394. data/lib/fog/parsers/storage/google/get_bucket.rb +58 -0
  395. data/lib/fog/parsers/storage/google/get_bucket_logging.rb +36 -0
  396. data/lib/fog/parsers/storage/google/get_bucket_object_versions.rb +88 -0
  397. data/lib/fog/parsers/storage/google/get_bucket_versioning.rb +20 -0
  398. data/lib/fog/parsers/storage/google/get_request_payment.rb +16 -0
  399. data/lib/fog/parsers/storage/google/get_service.rb +28 -0
  400. data/lib/fog/storage/google.rb +20 -0
  401. data/lib/fog/storage/google_json.rb +74 -0
  402. data/lib/fog/storage/google_json/mock.rb +27 -0
  403. data/lib/fog/storage/google_json/models/directories.rb +41 -0
  404. data/lib/fog/storage/google_json/models/directory.rb +61 -0
  405. data/lib/fog/storage/google_json/models/file.rb +126 -0
  406. data/lib/fog/storage/google_json/models/files.rb +64 -0
  407. data/lib/fog/storage/google_json/real.rb +171 -0
  408. data/lib/fog/storage/google_json/requests/copy_object.rb +34 -0
  409. data/lib/fog/storage/google_json/requests/delete_bucket.rb +23 -0
  410. data/lib/fog/storage/google_json/requests/delete_object.rb +24 -0
  411. data/lib/fog/storage/google_json/requests/delete_object_url.rb +39 -0
  412. data/lib/fog/storage/google_json/requests/get_bucket.rb +43 -0
  413. data/lib/fog/storage/google_json/requests/get_bucket_acl.rb +32 -0
  414. data/lib/fog/storage/google_json/requests/get_object.rb +85 -0
  415. data/lib/fog/storage/google_json/requests/get_object_acl.rb +35 -0
  416. data/lib/fog/storage/google_json/requests/get_object_http_url.rb +32 -0
  417. data/lib/fog/storage/google_json/requests/get_object_https_url.rb +33 -0
  418. data/lib/fog/storage/google_json/requests/get_object_metadata.rb +32 -0
  419. data/lib/fog/storage/google_json/requests/get_object_url.rb +21 -0
  420. data/lib/fog/storage/google_json/requests/list_bucket_acl.rb +26 -0
  421. data/lib/fog/storage/google_json/requests/list_buckets.rb +30 -0
  422. data/lib/fog/storage/google_json/requests/list_object_acl.rb +29 -0
  423. data/lib/fog/storage/google_json/requests/list_objects.rb +48 -0
  424. data/lib/fog/storage/google_json/requests/put_bucket.rb +42 -0
  425. data/lib/fog/storage/google_json/requests/put_bucket_acl.rb +29 -0
  426. data/lib/fog/storage/google_json/requests/put_object.rb +102 -0
  427. data/lib/fog/storage/google_json/requests/put_object_acl.rb +35 -0
  428. data/lib/fog/storage/google_json/requests/put_object_url.rb +42 -0
  429. data/lib/fog/storage/google_json/utils.rb +40 -0
  430. data/lib/fog/storage/google_xml.rb +38 -0
  431. data/lib/fog/storage/google_xml/mock.rb +102 -0
  432. data/lib/fog/storage/google_xml/models/directories.rb +34 -0
  433. data/lib/fog/storage/google_xml/models/directory.rb +65 -0
  434. data/lib/fog/storage/google_xml/models/file.rb +130 -0
  435. data/lib/fog/storage/google_xml/models/files.rb +95 -0
  436. data/lib/fog/storage/google_xml/real.rb +108 -0
  437. data/lib/fog/storage/google_xml/requests/copy_object.rb +62 -0
  438. data/lib/fog/storage/google_xml/requests/delete_bucket.rb +39 -0
  439. data/lib/fog/storage/google_xml/requests/delete_object.rb +44 -0
  440. data/lib/fog/storage/google_xml/requests/delete_object_url.rb +42 -0
  441. data/lib/fog/storage/google_xml/requests/get_bucket.rb +95 -0
  442. data/lib/fog/storage/google_xml/requests/get_bucket_acl.rb +53 -0
  443. data/lib/fog/storage/google_xml/requests/get_object.rb +96 -0
  444. data/lib/fog/storage/google_xml/requests/get_object_acl.rb +62 -0
  445. data/lib/fog/storage/google_xml/requests/get_object_http_url.rb +37 -0
  446. data/lib/fog/storage/google_xml/requests/get_object_https_url.rb +37 -0
  447. data/lib/fog/storage/google_xml/requests/get_object_url.rb +31 -0
  448. data/lib/fog/storage/google_xml/requests/get_service.rb +44 -0
  449. data/lib/fog/storage/google_xml/requests/head_object.rb +55 -0
  450. data/lib/fog/storage/google_xml/requests/put_bucket.rb +71 -0
  451. data/lib/fog/storage/google_xml/requests/put_bucket_acl.rb +58 -0
  452. data/lib/fog/storage/google_xml/requests/put_object.rb +85 -0
  453. data/lib/fog/storage/google_xml/requests/put_object_acl.rb +58 -0
  454. data/lib/fog/storage/google_xml/requests/put_object_url.rb +42 -0
  455. data/lib/fog/storage/google_xml/utils.rb +83 -0
  456. data/tasks/bundler.rake +3 -0
  457. data/tasks/changelog.rake +39 -0
  458. data/tasks/console.rake +17 -0
  459. data/tasks/lint.rake +9 -0
  460. data/tasks/test.rake +115 -0
  461. data/test/helpers/client_helper.rb +63 -0
  462. data/test/helpers/integration_test_helper.rb +108 -0
  463. data/test/helpers/test_collection.rb +60 -0
  464. data/test/helpers/test_helper.rb +24 -0
  465. data/test/integration/compute/core_compute/test_client_options.rb +12 -0
  466. data/test/integration/compute/core_compute/test_coverage.rb +6 -0
  467. data/test/integration/compute/core_compute/test_disk_types.rb +43 -0
  468. data/test/integration/compute/core_compute/test_disks.rb +53 -0
  469. data/test/integration/compute/core_compute/test_images.rb +32 -0
  470. data/test/integration/compute/core_compute/test_machine_types.rb +55 -0
  471. data/test/integration/compute/core_compute/test_operations.rb +45 -0
  472. data/test/integration/compute/core_compute/test_projects.rb +19 -0
  473. data/test/integration/compute/core_compute/test_regions.rb +33 -0
  474. data/test/integration/compute/core_compute/test_servers.rb +149 -0
  475. data/test/integration/compute/core_compute/test_snapshots.rb +21 -0
  476. data/test/integration/compute/core_compute/test_zones.rb +35 -0
  477. data/test/integration/compute/core_networking/test_addresses.rb +107 -0
  478. data/test/integration/compute/core_networking/test_coverage.rb +6 -0
  479. data/test/integration/compute/core_networking/test_firewalls.rb +11 -0
  480. data/test/integration/compute/core_networking/test_networks.rb +41 -0
  481. data/test/integration/compute/core_networking/test_routes.rb +26 -0
  482. data/test/integration/compute/core_networking/test_subnetworks.rb +11 -0
  483. data/test/integration/compute/instance_groups/test_coverage.rb +6 -0
  484. data/test/integration/compute/instance_groups/test_instance_group_managers.rb +11 -0
  485. data/test/integration/compute/instance_groups/test_instance_groups.rb +11 -0
  486. data/test/integration/compute/instance_groups/test_instance_templates.rb +11 -0
  487. data/test/integration/compute/loadbalancing/test_backend_services.rb +11 -0
  488. data/test/integration/compute/loadbalancing/test_coverage.rb +6 -0
  489. data/test/integration/compute/loadbalancing/test_forwarding_rules.rb +11 -0
  490. data/test/integration/compute/loadbalancing/test_global_addresses.rb +11 -0
  491. data/test/integration/compute/loadbalancing/test_global_forwarding_rules.rb +11 -0
  492. data/test/integration/compute/loadbalancing/test_http_health_checks.rb +11 -0
  493. data/test/integration/compute/loadbalancing/test_ssl_certificates.rb +11 -0
  494. data/test/integration/compute/loadbalancing/test_target_http_proxies.rb +11 -0
  495. data/test/integration/compute/loadbalancing/test_target_https_proxies.rb +11 -0
  496. data/test/integration/compute/loadbalancing/test_target_instances.rb +11 -0
  497. data/test/integration/compute/loadbalancing/test_target_pools.rb +55 -0
  498. data/test/integration/compute/loadbalancing/test_url_maps.rb +11 -0
  499. data/test/integration/factories/addresses_factory.rb +20 -0
  500. data/test/integration/factories/backend_services_factory.rb +19 -0
  501. data/test/integration/factories/collection_factory.rb +52 -0
  502. data/test/integration/factories/disks_factory.rb +22 -0
  503. data/test/integration/factories/firewalls_factory.rb +13 -0
  504. data/test/integration/factories/forwarding_rules_factory.rb +25 -0
  505. data/test/integration/factories/global_addresses_factory.rb +15 -0
  506. data/test/integration/factories/global_forwarding_rules_factory.rb +20 -0
  507. data/test/integration/factories/http_health_checks_factory.rb +11 -0
  508. data/test/integration/factories/images_factory.rb +16 -0
  509. data/test/integration/factories/instance_group_manager_factory.rb +30 -0
  510. data/test/integration/factories/instance_groups_factory.rb +20 -0
  511. data/test/integration/factories/instance_template_factory.rb +24 -0
  512. data/test/integration/factories/networks_factory.rb +16 -0
  513. data/test/integration/factories/servers_factory.rb +30 -0
  514. data/test/integration/factories/sql_certs_factory.rb +20 -0
  515. data/test/integration/factories/sql_instances_factory.rb +19 -0
  516. data/test/integration/factories/sql_users_factory.rb +23 -0
  517. data/test/integration/factories/ssl_certificates_factory.rb +13 -0
  518. data/test/integration/factories/subnetworks_factory.rb +26 -0
  519. data/test/integration/factories/target_http_proxies_factory.rb +19 -0
  520. data/test/integration/factories/target_https_proxies_factory.rb +26 -0
  521. data/test/integration/factories/target_instances_factory.rb +24 -0
  522. data/test/integration/factories/target_pools_factory.rb +28 -0
  523. data/test/integration/factories/url_maps_factory.rb +19 -0
  524. data/test/integration/monitoring/test_coverage.rb +6 -0
  525. data/test/integration/monitoring/test_metric_descriptors.rb +131 -0
  526. data/test/integration/monitoring/test_monitored_resource_descriptors.rb +37 -0
  527. data/test/integration/monitoring/test_timeseries.rb +238 -0
  528. data/test/integration/pubsub/pubsub_shared.rb +75 -0
  529. data/test/integration/pubsub/test_coverage.rb +6 -0
  530. data/test/integration/pubsub/test_pubsub_models.rb +135 -0
  531. data/test/integration/pubsub/test_pubsub_requests.rb +105 -0
  532. data/test/integration/sql/test_certs.rb +50 -0
  533. data/test/integration/sql/test_common_flags.rb +31 -0
  534. data/test/integration/sql/test_common_tiers.rb +26 -0
  535. data/test/integration/sql/test_coverage.rb +6 -0
  536. data/test/integration/sql/test_instances.rb +101 -0
  537. data/test/integration/sql/test_users.rb +37 -0
  538. data/test/integration/storage/storage_shared.rb +96 -0
  539. data/test/integration/storage/test_buckets.rb +112 -0
  540. data/test/integration/storage/test_coverage.rb +6 -0
  541. data/test/integration/storage/test_directories.rb +67 -0
  542. data/test/integration/storage/test_files.rb +168 -0
  543. data/test/integration/storage/test_objects.rb +203 -0
  544. data/test/integration/test_authentication.rb +38 -0
  545. data/test/unit/compute/test_common_collections.rb +42 -0
  546. data/test/unit/compute/test_common_models.rb +35 -0
  547. data/test/unit/compute/test_server.rb +29 -0
  548. data/test/unit/dns/test_common_collections.rb +43 -0
  549. data/test/unit/monitoring/test_comon_collections.rb +44 -0
  550. data/test/unit/pubsub/test_common_collections.rb +35 -0
  551. data/test/unit/sql/test_common_collections.rb +46 -0
  552. data/test/unit/storage/test_common_json_collections.rb +38 -0
  553. data/test/unit/storage/test_common_xml_collections.rb +50 -0
  554. data/test/unit/storage/test_json_requests.rb +44 -0
  555. data/test/unit/storage/test_xml_requests.rb +60 -0
  556. metadata +897 -0
@@ -0,0 +1,33 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # # More info on it can be found here: http://fog.io/about/getting_started.html
3
+ #
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+ # Uncomment this if you want to make real requests to GCE (you _will_ be billed!)
7
+ # WebMock.disable!
8
+
9
+ def test
10
+ connection = Fog::Google::Pubsub.new
11
+
12
+ puts "Creating a topic"
13
+ puts "----------------"
14
+ topic = connection.topics.create(:name => "projects/#{connection.project}/topics/#{Fog::Mock.random_letters(16)}")
15
+
16
+ puts "Getting a topic"
17
+ puts "---------------"
18
+ connection.topics.get(topic.name)
19
+
20
+ puts "Listing all topics"
21
+ puts "------------------"
22
+ connection.topics.all
23
+
24
+ puts "Publishing to topic"
25
+ puts "-------------------"
26
+ topic.publish(["test message"])
27
+
28
+ puts "Delete the topic"
29
+ puts "----------------"
30
+ topic.destroy
31
+ end
32
+
33
+ test
@@ -0,0 +1,11 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # More info on it can be found here: http://fog.io/about/getting_started.html
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+
7
+ connection = Fog::Google::SQL.new
8
+
9
+ puts "Listing all Flags..."
10
+ puts "--------------------"
11
+ connection.flags
@@ -0,0 +1,38 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # More info on it can be found here: http://fog.io/about/getting_started.html
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+
7
+ connection = Fog::Google::SQL.new
8
+
9
+ puts "Create a Instance..."
10
+ puts "--------------------"
11
+ instance = connection.instances.create(:name => Fog::Mock.random_letters(16), :tier => "db-n1-standard-1")
12
+ instance.wait_for { ready? }
13
+
14
+ puts "Get the Instance..."
15
+ puts "----------------------"
16
+ connection.instances.get(instance.name)
17
+
18
+ puts "List all Instances..."
19
+ puts "---------------------"
20
+ connection.instances.all
21
+
22
+ puts "Update the Instance..."
23
+ puts "----------------------"
24
+ instance.settings[:activation_policy] = "ALWAYS"
25
+ instance.update
26
+ instance.wait_for { ready? }
27
+
28
+ puts "Reset the Instance SSL configuration..."
29
+ puts "---------------------------------------"
30
+ instance.reset_ssl_config
31
+
32
+ puts "Restart the Instance..."
33
+ puts "-----------------------"
34
+ instance.restart
35
+
36
+ puts "Delete the Instance..."
37
+ puts "----------------------"
38
+ instance.destroy
@@ -0,0 +1,24 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # More info on it can be found here: http://fog.io/about/getting_started.html
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+
7
+ connection = Fog::Google::SQL.new
8
+
9
+ puts "Create a Instance..."
10
+ puts "--------------------"
11
+ instance = connection.instances.create(:name => Fog::Mock.random_letters(16), :tier => "D1")
12
+ instance.wait_for { ready? }
13
+
14
+ puts "Delete the Instance..."
15
+ puts "----------------------"
16
+ operation = instance.destroy
17
+
18
+ puts "Get the Operation..."
19
+ puts "--------------------"
20
+ connection.operations.get(operation.identity)
21
+
22
+ puts "Listing all Operations..."
23
+ puts "-------------------------"
24
+ connection.operations.all(instance.identity)
@@ -0,0 +1,32 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # More info on it can be found here: http://fog.io/about/getting_started.html
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+
7
+ connection = Fog::Google::SQL.new
8
+
9
+ puts "Create a Instance..."
10
+ puts "--------------------"
11
+ instance = connection.instances.create(:name => Fog::Mock.random_letters(16), :tier => "db-n1-standard-1")
12
+ instance.wait_for { ready? }
13
+
14
+ puts "Create a SSL certificate..."
15
+ puts "---------------------------"
16
+ ssl_cert = connection.ssl_certs.create(:instance => instance.name, :common_name => Fog::Mock.random_letters(16))
17
+
18
+ puts "Get the SSL certificate..."
19
+ puts "--------------------------"
20
+ connection.ssl_certs.get(instance.name, ssl_cert.sha1_fingerprint)
21
+
22
+ puts "List all SSL certificate..."
23
+ puts "---------------------------"
24
+ connection.ssl_certs.all(instance.name)
25
+
26
+ puts "Delete the SSL certificate..."
27
+ puts "-----------------------------"
28
+ ssl_cert.destroy
29
+
30
+ puts "Delete the Instance..."
31
+ puts "----------------------"
32
+ instance.destroy
@@ -0,0 +1,11 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # More info on it can be found here: http://fog.io/about/getting_started.html
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+
7
+ connection = Fog::Google::SQL.new
8
+
9
+ puts "Listing all Tiers..."
10
+ puts "--------------------"
11
+ connection.tiers
@@ -0,0 +1,49 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # More info on it can be found here: http://fog.io/about/getting_started.html
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+ # Uncomment this if you want to make real requests to GCE (you _will_ be billed!)
7
+ # WebMock.disable!
8
+
9
+ # This specific example needs google_storage_access_key_id: and google_storage_secret_access_key to be set in ~/.fog
10
+ # One can request those keys via Google Developers console in:
11
+ # Storage -> Storage -> Settings -> "Interoperability" tab -> "Create a new key"
12
+
13
+ def test
14
+ connection = Fog::Storage::Google.new
15
+
16
+ puts "Put a bucket..."
17
+ puts "----------------"
18
+ connection.put_bucket("fog-smoke-test")
19
+
20
+ puts "Get the bucket..."
21
+ puts "-----------------"
22
+ connection.get_bucket("fog-smoke-test")
23
+
24
+ puts "Put a test file..."
25
+ puts "---------------"
26
+ connection.put_object("fog-smoke-test", "my file", "THISISATESTFILE")
27
+
28
+ puts "Get the test file..."
29
+ puts "---------------"
30
+ connection.get_object("fog-smoke-test", "my file")
31
+
32
+ puts "Head file..."
33
+ puts "---------------"
34
+ connection.head_object("fog-smoke-test", "my file")
35
+
36
+ puts "Get file ACL..."
37
+ puts "---------------"
38
+ connection.get_object_acl("fog-smoke-test", "my file")
39
+
40
+ puts "Delete the test file..."
41
+ puts "---------------"
42
+ connection.delete_object("fog-smoke-test", "my file")
43
+
44
+ puts "Delete the bucket..."
45
+ puts "------------------"
46
+ connection.delete_bucket("fog-smoke-test")
47
+ end
48
+
49
+ test
@@ -0,0 +1,37 @@
1
+ # All examples presume that you have a ~/.fog credentials file set up.
2
+ # More info on it can be found here: http://fog.io/about/getting_started.html
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :development)
6
+ # Uncomment this if you want to make real requests to GCE (you _will_ be billed!)
7
+ # WebMock.disable!
8
+
9
+ # This specific example needs google_storage_access_key_id: and google_storage_secret_access_key to be set in ~/.fog
10
+ # One can request those keys via Google Developers console in:
11
+ # Storage -> Storage -> Settings -> "Interoperability" tab -> "Create a new key"
12
+
13
+ def test
14
+ connection = Fog::Storage::Google.new
15
+
16
+ puts "Put a bucket..."
17
+ puts "----------------"
18
+ connection.put_bucket("fog-smoke-test", predefined_acl: "publicReadWrite")
19
+
20
+ puts "Get the bucket..."
21
+ puts "-----------------"
22
+ connection.get_bucket("fog-smoke-test")
23
+
24
+ puts "Put a test file..."
25
+ puts "---------------"
26
+ connection.put_object("fog-smoke-test", "my file", "THISISATESTFILE")
27
+
28
+ puts "Delete the test file..."
29
+ puts "---------------"
30
+ connection.delete_object("fog-smoke-test", "my file")
31
+
32
+ puts "Delete the bucket..."
33
+ puts "------------------"
34
+ connection.delete_bucket("fog-smoke-test")
35
+ end
36
+
37
+ test
@@ -0,0 +1,44 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "fog/google/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "gitlab-fog-google"
7
+ spec.version = Fog::Google::VERSION
8
+ spec.authors = ["Nat Welch", "Artem Yakimenko"]
9
+ spec.email = ["nat@natwelch.com", "temikus@google.com"]
10
+ spec.summary = "Module for the 'fog' gem to support Google."
11
+ spec.description = "This library can be used as a module for `fog` or as standalone provider to use the Google Cloud in applications."
12
+ spec.homepage = "https://github.com/fog/fog-google"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ # As of 0.1.1
21
+ spec.required_ruby_version = "~> 2.0"
22
+
23
+ # Locked until https://github.com/fog/fog-google/issues/417 is resolved
24
+ spec.add_dependency "fog-core", "<= 2.1.0"
25
+ spec.add_dependency "fog-json", "~> 1.2"
26
+ spec.add_dependency "fog-xml", "~> 0.1.0"
27
+
28
+ spec.add_dependency "google-api-client", ">= 0.44.2", "< 0.51"
29
+ spec.add_dependency "google-cloud-env", "~> 1.2"
30
+
31
+ spec.add_dependency "addressable", ">= 2.7.0"
32
+
33
+ # Debugger
34
+ spec.add_development_dependency "pry"
35
+
36
+ # Testing gems
37
+ spec.add_development_dependency "retriable"
38
+ spec.add_development_dependency "rake"
39
+ spec.add_development_dependency "minitest"
40
+ spec.add_development_dependency "minitest-reporters"
41
+ spec.add_development_dependency "shindo"
42
+ spec.add_development_dependency "vcr"
43
+ spec.add_development_dependency "webmock"
44
+ end
@@ -0,0 +1,97 @@
1
+ # deviates from other bin stuff to accomodate gem
2
+ module Google
3
+ class << self
4
+ def class_for(key)
5
+ case key
6
+ when :compute
7
+ Fog::Compute::Google
8
+ when :dns
9
+ Fog::DNS::Google
10
+ when :monitoring
11
+ Fog::Google::Monitoring
12
+ when :storage
13
+ Fog::Storage::Google
14
+ when :storage_json
15
+ Fog::Storage::Google
16
+ when :sql
17
+ Fog::Google::SQL
18
+ when :pubsub
19
+ Fog::Google::Pubsub
20
+ else
21
+ raise ArgumentError, "Unsupported #{self} service: #{key}"
22
+ end
23
+ end
24
+
25
+ def [](service)
26
+ @@connections ||= Hash.new do |hash, key|
27
+ hash[key] = case key
28
+ when :compute
29
+ Fog::Logger.warning("Google[:compute] is not recommended, use Compute[:google] for portability")
30
+ Fog::Compute.new(:provider => "Google")
31
+ when :dns
32
+ Fog::Logger.warning("Google[:dns] is not recommended, use DNS[:google] for portability")
33
+ Fog::DNS.new(:provider => "Google")
34
+ when :monitoring
35
+ Fog::Google::Monitoring.new
36
+ when :sql
37
+ Fog::Google::SQL.new
38
+ when :pubsub
39
+ Fog::Google::Pubsub.new
40
+ when :storage
41
+ Fog::Logger.warning("Google[:storage] is not recommended, use Storage[:google] for portability")
42
+ Fog::Storage.new(:provider => "Google")
43
+ else
44
+ raise ArgumentError, "Unrecognized service: #{key.inspect}"
45
+ end
46
+ end
47
+ @@connections[service]
48
+ end
49
+
50
+ def account
51
+ @@connections[:compute].account
52
+ end
53
+
54
+ def services
55
+ Fog::Google.services
56
+ end
57
+
58
+ # based off of virtual_box.rb
59
+ def available?
60
+ # Make sure the gem we use is enabled.
61
+ if Gem::Specification.respond_to?(:find_all_by_name)
62
+ # newest rubygems
63
+ availability = !Gem::Specification.find_all_by_name("google-api-client").empty?
64
+ else
65
+ # legacy
66
+ availability = !Gem.source_index.find_name("google-api-client").empty?
67
+ end
68
+
69
+ # Then make sure we have all of the requirements
70
+ services.each do |service|
71
+ begin
72
+ service = class_for(service)
73
+ availability &&= service.requirements.all? { |requirement| Fog.credentials.include?(requirement) }
74
+ rescue ArgumentError => e
75
+ Fog::Logger.warning(e.message)
76
+ availability = false
77
+ rescue => e
78
+ availability = false
79
+ end
80
+ end
81
+
82
+ if availability
83
+ services.each do |service|
84
+ class_for(service).collections.each do |collection|
85
+ next if respond_to?(collection)
86
+ class_eval <<-EOS, __FILE__, __LINE__
87
+ def self.#{collection}
88
+ self[:#{service}].#{collection}
89
+ end
90
+ EOS
91
+ end
92
+ end
93
+ end
94
+ availability
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,304 @@
1
+ module Fog
2
+ module Compute
3
+ class Google < Fog::Service
4
+ autoload :Mock, File.expand_path("../google/mock", __FILE__)
5
+ autoload :Real, File.expand_path("../google/real", __FILE__)
6
+
7
+ requires :google_project
8
+ recognizes(
9
+ :app_name,
10
+ :app_version,
11
+ :google_application_default,
12
+ :google_auth,
13
+ :google_client,
14
+ :google_client_options,
15
+ :google_extra_global_projects,
16
+ :google_exclude_projects,
17
+ :google_key_location,
18
+ :google_key_string,
19
+ :google_json_key_location,
20
+ :google_json_key_string
21
+ )
22
+
23
+ GOOGLE_COMPUTE_API_VERSION = "v1".freeze
24
+ GOOGLE_COMPUTE_BASE_URL = "https://www.googleapis.com/compute/".freeze
25
+ GOOGLE_COMPUTE_API_SCOPE_URLS = %w(https://www.googleapis.com/auth/compute
26
+ https://www.googleapis.com/auth/devstorage.read_write
27
+ https://www.googleapis.com/auth/ndev.cloudman
28
+ https://www.googleapis.com/auth/cloud-platform).freeze
29
+ GOOGLE_COMPUTE_DEFAULT_NETWORK = "default".freeze
30
+
31
+ request_path "fog/compute/google/requests"
32
+ request :add_backend_service_backends
33
+ request :add_instance_group_instances
34
+ request :add_server_access_config
35
+ request :add_target_pool_health_checks
36
+ request :add_target_pool_instances
37
+
38
+ request :delete_address
39
+ request :delete_global_address
40
+ request :delete_backend_service
41
+ request :delete_disk
42
+ request :delete_firewall
43
+ request :delete_forwarding_rule
44
+ request :delete_global_forwarding_rule
45
+ request :delete_global_operation
46
+ request :delete_http_health_check
47
+ request :delete_image
48
+ request :delete_instance_group
49
+ request :delete_network
50
+ request :delete_region_operation
51
+ request :delete_route
52
+ request :delete_server
53
+ request :delete_server_access_config
54
+ request :delete_snapshot
55
+ request :delete_subnetwork
56
+ request :delete_target_http_proxy
57
+ request :delete_target_https_proxy
58
+ request :delete_target_instance
59
+ request :delete_target_pool
60
+ request :delete_url_map
61
+ request :delete_zone_operation
62
+ request :delete_ssl_certificate
63
+
64
+ request :get_address
65
+ request :get_global_address
66
+ request :get_backend_service
67
+ request :get_backend_service_health
68
+ request :get_disk
69
+ request :get_disk_type
70
+ request :get_firewall
71
+ request :get_forwarding_rule
72
+ request :get_global_forwarding_rule
73
+ request :get_global_operation
74
+ request :get_http_health_check
75
+ request :get_image
76
+ request :get_image_from_family
77
+ request :get_instance_group
78
+ request :get_machine_type
79
+ request :get_network
80
+ request :get_project
81
+ request :get_region
82
+ request :get_region_operation
83
+ request :get_route
84
+ request :get_server
85
+ request :get_server_serial_port_output
86
+ request :get_snapshot
87
+ request :get_subnetwork
88
+ request :get_target_http_proxy
89
+ request :get_target_https_proxy
90
+ request :get_target_instance
91
+ request :get_target_pool
92
+ request :get_target_pool_health
93
+ request :get_url_map
94
+ request :get_zone
95
+ request :get_zone_operation
96
+ request :get_ssl_certificate
97
+
98
+ request :insert_address
99
+ request :insert_global_address
100
+ request :insert_backend_service
101
+ request :insert_disk
102
+ request :insert_firewall
103
+ request :insert_forwarding_rule
104
+ request :insert_global_forwarding_rule
105
+ request :insert_http_health_check
106
+ request :insert_image
107
+ request :insert_instance_group
108
+ request :insert_network
109
+ request :insert_route
110
+ request :insert_server
111
+ request :insert_subnetwork
112
+ request :insert_target_http_proxy
113
+ request :insert_target_https_proxy
114
+ request :insert_target_instance
115
+ request :insert_target_pool
116
+ request :insert_url_map
117
+ request :insert_ssl_certificate
118
+
119
+ request :list_addresses
120
+ request :list_aggregated_addresses
121
+ request :list_aggregated_disk_types
122
+ request :list_aggregated_disks
123
+ request :list_aggregated_forwarding_rules
124
+ request :list_aggregated_instance_groups
125
+ request :list_aggregated_machine_types
126
+ request :list_aggregated_servers
127
+ request :list_aggregated_subnetworks
128
+ request :list_aggregated_target_instances
129
+ request :list_aggregated_target_pools
130
+ request :list_backend_services
131
+ request :list_disk_types
132
+ request :list_disks
133
+ request :list_firewalls
134
+ request :list_forwarding_rules
135
+ request :list_global_addresses
136
+ request :list_global_forwarding_rules
137
+ request :list_global_operations
138
+ request :list_http_health_checks
139
+ request :list_images
140
+ request :list_instance_group_instances
141
+ request :list_instance_groups
142
+ request :list_machine_types
143
+ request :list_networks
144
+ request :list_region_operations
145
+ request :list_regions
146
+ request :list_routes
147
+ request :list_servers
148
+ request :list_snapshots
149
+ request :list_subnetworks
150
+ request :list_target_http_proxies
151
+ request :list_target_https_proxies
152
+ request :list_target_instances
153
+ request :list_target_pools
154
+ request :list_url_maps
155
+ request :list_zone_operations
156
+ request :list_zones
157
+ request :list_ssl_certificates
158
+
159
+ request :patch_firewall
160
+ request :patch_url_map
161
+
162
+ request :remove_instance_group_instances
163
+ request :remove_target_pool_health_checks
164
+ request :remove_target_pool_instances
165
+
166
+ request :set_common_instance_metadata
167
+ request :set_forwarding_rule_target
168
+ request :set_global_forwarding_rule_target
169
+ request :set_server_disk_auto_delete
170
+ request :set_server_machine_type
171
+ request :set_server_metadata
172
+ request :set_server_scheduling
173
+ request :set_server_tags
174
+ request :set_snapshot_labels
175
+ request :set_subnetwork_private_ip_google_access
176
+ request :set_target_http_proxy_url_map
177
+ request :set_target_https_proxy_ssl_certificates
178
+ request :set_target_https_proxy_url_map
179
+ request :set_target_pool_backup
180
+
181
+ request :update_firewall
182
+ request :update_http_health_check
183
+ request :update_url_map
184
+
185
+ request :attach_disk
186
+ request :detach_disk
187
+ request :create_disk_snapshot
188
+
189
+ request :expand_subnetwork_ip_cidr_range
190
+ request :reset_server
191
+ request :start_server
192
+ request :stop_server
193
+
194
+ request :invalidate_url_map_cache
195
+ request :validate_url_map
196
+
197
+ request :get_instance_group_manager
198
+ request :insert_instance_group_manager
199
+ request :delete_instance_group_manager
200
+ request :list_instance_templates
201
+ request :list_instance_group_managers
202
+ request :get_instance_template
203
+ request :insert_instance_template
204
+ request :delete_instance_template
205
+
206
+ request :list_aggregated_instance_group_managers
207
+ request :set_instance_template
208
+ request :recreate_instances
209
+ request :abandon_instances
210
+
211
+ request :deprecate_image
212
+
213
+ request :reset_windows_password
214
+
215
+ model_path "fog/compute/google/models"
216
+ model :server
217
+ collection :servers
218
+
219
+ model :image
220
+ collection :images
221
+
222
+ model :disk
223
+ collection :disks
224
+
225
+ model :disk_type
226
+ collection :disk_types
227
+
228
+ model :machine_type
229
+ collection :machine_types
230
+
231
+ model :address
232
+ collection :addresses
233
+
234
+ model :global_address
235
+ collection :global_addresses
236
+
237
+ model :operation
238
+ collection :operations
239
+
240
+ model :snapshot
241
+ collection :snapshots
242
+
243
+ model :zone
244
+ collection :zones
245
+
246
+ model :region
247
+ collection :regions
248
+
249
+ model :http_health_check
250
+ collection :http_health_checks
251
+
252
+ model :target_pool
253
+ collection :target_pools
254
+
255
+ model :forwarding_rule
256
+ collection :forwarding_rules
257
+
258
+ model :project
259
+ collection :projects
260
+
261
+ model :firewall
262
+ collection :firewalls
263
+
264
+ model :network
265
+ collection :networks
266
+
267
+ model :route
268
+ collection :routes
269
+
270
+ model :backend_service
271
+ collection :backend_services
272
+
273
+ model :target_http_proxy
274
+ collection :target_http_proxies
275
+
276
+ model :target_https_proxy
277
+ collection :target_https_proxies
278
+
279
+ model :url_map
280
+ collection :url_maps
281
+
282
+ model :global_forwarding_rule
283
+ collection :global_forwarding_rules
284
+
285
+ model :target_instance
286
+ collection :target_instances
287
+
288
+ model :instance_group
289
+ collection :instance_groups
290
+
291
+ model :subnetwork
292
+ collection :subnetworks
293
+
294
+ model :instance_template
295
+ collection :instance_templates
296
+
297
+ model :instance_group_manager
298
+ collection :instance_group_managers
299
+
300
+ model :ssl_certificate
301
+ collection :ssl_certificates
302
+ end
303
+ end
304
+ end