fog-google 0.1.3 → 0.2.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 (479) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +11 -0
  3. data/.gitignore +1 -0
  4. data/.hound.yml +2 -0
  5. data/.rubocop.yml +225 -5
  6. data/.travis.yml +13 -11
  7. data/CONTRIBUTORS.md +1 -0
  8. data/Gemfile +1 -1
  9. data/README.md +31 -16
  10. data/Rakefile +15 -39
  11. data/examples/backend_services.rb +12 -11
  12. data/examples/bootstrap.rb +11 -1
  13. data/examples/{create.rb → create_instance.rb} +20 -11
  14. data/examples/dns/project.rb +2 -3
  15. data/examples/dns/zones.rb +21 -21
  16. data/examples/get_list_images.rb +31 -15
  17. data/examples/get_list_snapshots.rb +20 -10
  18. data/examples/image_create.rb +5 -5
  19. data/examples/l7_load_balance.rb +56 -58
  20. data/examples/load-balance.rb +22 -23
  21. data/examples/metadata.rb +17 -9
  22. data/examples/monitoring/metric_descriptors.rb +19 -6
  23. data/examples/monitoring/timeseries_collection.rb +23 -11
  24. data/examples/monitoring/timeseries_descriptors.rb +23 -11
  25. data/examples/network.rb +25 -29
  26. data/examples/precreated_client.rb +3 -6
  27. data/examples/sql/flags.rb +2 -2
  28. data/examples/sql/instances.rb +18 -18
  29. data/examples/sql/operations.rb +9 -9
  30. data/examples/sql/ssl_certs.rb +13 -13
  31. data/examples/sql/tiers.rb +2 -2
  32. data/examples/storage.rb +37 -0
  33. data/examples/storage_json.rb +37 -0
  34. data/fog-google.gemspec +24 -21
  35. data/lib/fog/bin/google.rb +34 -32
  36. data/lib/fog/{google/compute.rb → compute/google.rb} +207 -151
  37. data/lib/fog/{google/models/compute → compute/google/models}/address.rb +24 -28
  38. data/lib/fog/{google/models/compute → compute/google/models}/addresses.rb +10 -14
  39. data/lib/fog/{google/models/compute → compute/google/models}/backend_service.rb +28 -34
  40. data/lib/fog/{google/models/compute → compute/google/models}/backend_services.rb +2 -5
  41. data/lib/fog/{google/models/compute → compute/google/models}/disk.rb +35 -39
  42. data/lib/fog/{google/models/compute → compute/google/models}/disk_type.rb +4 -6
  43. data/lib/fog/{google/models/compute → compute/google/models}/disk_types.rb +7 -10
  44. data/lib/fog/{google/models/compute → compute/google/models}/disks.rb +9 -12
  45. data/lib/fog/{google/models/compute → compute/google/models}/firewall.rb +10 -14
  46. data/lib/fog/{google/models/compute → compute/google/models}/firewalls.rb +1 -4
  47. data/lib/fog/compute/google/models/flavor.rb +31 -0
  48. data/lib/fog/{google/models/compute → compute/google/models}/flavors.rb +2 -5
  49. data/lib/fog/{google/models/compute → compute/google/models}/forwarding_rule.rb +24 -28
  50. data/lib/fog/{google/models/compute → compute/google/models}/forwarding_rules.rb +8 -11
  51. data/lib/fog/compute/google/models/global_forwarding_rule.rb +82 -0
  52. data/lib/fog/{google/models/compute → compute/google/models}/global_forwarding_rules.rb +2 -5
  53. data/lib/fog/compute/google/models/http_health_check.rb +80 -0
  54. data/lib/fog/{google/models/compute → compute/google/models}/http_health_checks.rb +2 -5
  55. data/lib/fog/{google/models/compute → compute/google/models}/image.rb +18 -22
  56. data/lib/fog/{google/models/compute → compute/google/models}/images.rb +24 -17
  57. data/lib/fog/{google/models/compute → compute/google/models}/instance_group.rb +5 -8
  58. data/lib/fog/{google/models/compute → compute/google/models}/instance_groups.rb +10 -13
  59. data/lib/fog/{google/models/compute → compute/google/models}/network.rb +9 -13
  60. data/lib/fog/{google/models/compute → compute/google/models}/networks.rb +1 -4
  61. data/lib/fog/{google/models/compute → compute/google/models}/operation.rb +16 -18
  62. data/lib/fog/{google/models/compute → compute/google/models}/operations.rb +8 -11
  63. data/lib/fog/{google/models/compute → compute/google/models}/project.rb +5 -7
  64. data/lib/fog/{google/models/compute → compute/google/models}/projects.rb +0 -3
  65. data/lib/fog/{google/models/compute → compute/google/models}/region.rb +5 -7
  66. data/lib/fog/{google/models/compute → compute/google/models}/regions.rb +1 -4
  67. data/lib/fog/compute/google/models/resource_view.rb +108 -0
  68. data/lib/fog/compute/google/models/resource_views.rb +54 -0
  69. data/lib/fog/{google/models/compute → compute/google/models}/route.rb +12 -16
  70. data/lib/fog/{google/models/compute → compute/google/models}/routes.rb +1 -4
  71. data/lib/fog/{google/models/compute → compute/google/models}/server.rb +81 -92
  72. data/lib/fog/{google/models/compute → compute/google/models}/servers.rb +13 -16
  73. data/lib/fog/compute/google/models/snapshot.rb +44 -0
  74. data/lib/fog/{google/models/compute → compute/google/models}/snapshots.rb +1 -4
  75. data/lib/fog/compute/google/models/subnetwork.rb +49 -0
  76. data/lib/fog/compute/google/models/subnetworks.rb +29 -0
  77. data/lib/fog/{google/models/compute → compute/google/models}/target_http_proxies.rb +2 -5
  78. data/lib/fog/{google/models/compute → compute/google/models}/target_http_proxy.rb +18 -22
  79. data/lib/fog/{google/models/compute → compute/google/models}/target_instance.rb +23 -28
  80. data/lib/fog/{google/models/compute → compute/google/models}/target_instances.rb +9 -12
  81. data/lib/fog/{google/models/compute → compute/google/models}/target_pool.rb +24 -28
  82. data/lib/fog/{google/models/compute → compute/google/models}/target_pools.rb +6 -9
  83. data/lib/fog/{google/models/compute → compute/google/models}/url_map.rb +32 -36
  84. data/lib/fog/{google/models/compute → compute/google/models}/url_maps.rb +1 -4
  85. data/lib/fog/compute/google/models/zone.rb +21 -0
  86. data/lib/fog/{google/models/compute → compute/google/models}/zones.rb +0 -3
  87. data/lib/fog/{google/requests/compute → compute/google/requests}/add_backend_service_backends.rb +5 -5
  88. data/lib/fog/{google/requests/compute → compute/google/requests}/add_instance_group_instance.rb +4 -4
  89. data/lib/fog/compute/google/requests/add_region_view_resources.rb +27 -0
  90. data/lib/fog/{google/requests/compute → compute/google/requests}/add_server_access_config.rb +8 -8
  91. data/lib/fog/{google/requests/compute → compute/google/requests}/add_target_pool_health_checks.rb +6 -6
  92. data/lib/fog/{google/requests/compute → compute/google/requests}/add_target_pool_instances.rb +6 -6
  93. data/lib/fog/{google/requests/compute → compute/google/requests}/add_url_map_host_rules.rb +6 -6
  94. data/lib/fog/{google/requests/compute → compute/google/requests}/add_url_map_path_matchers.rb +7 -7
  95. data/lib/fog/compute/google/requests/add_zone_view_resources.rb +27 -0
  96. data/lib/fog/compute/google/requests/attach_disk.rb +34 -0
  97. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_address.rb +4 -4
  98. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_backend_service.rb +8 -8
  99. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_disk.rb +9 -11
  100. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_firewall.rb +3 -3
  101. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_forwarding_rule.rb +8 -8
  102. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_global_forwarding_rule.rb +12 -12
  103. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_global_operation.rb +3 -3
  104. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_http_health_check.rb +7 -7
  105. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_image.rb +7 -7
  106. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_instance_group.rb +4 -4
  107. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_network.rb +3 -3
  108. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_region_operation.rb +6 -6
  109. data/lib/fog/compute/google/requests/delete_region_view.rb +24 -0
  110. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_route.rb +3 -3
  111. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_server.rb +15 -17
  112. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_server_access_config.rb +6 -6
  113. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_snapshot.rb +3 -3
  114. data/lib/fog/compute/google/requests/delete_subnetwork.rb +49 -0
  115. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_target_http_proxy.rb +7 -7
  116. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_target_instance.rb +9 -11
  117. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_target_pool.rb +8 -8
  118. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_url_map.rb +7 -7
  119. data/lib/fog/{google/requests/compute → compute/google/requests}/delete_zone_operation.rb +5 -7
  120. data/lib/fog/compute/google/requests/delete_zone_view.rb +24 -0
  121. data/lib/fog/{google/requests/compute → compute/google/requests}/detach_disk.rb +5 -5
  122. data/lib/fog/{google/requests/compute → compute/google/requests}/get_address.rb +4 -4
  123. data/lib/fog/{google/requests/compute → compute/google/requests}/get_backend_service.rb +5 -7
  124. data/lib/fog/{google/requests/compute → compute/google/requests}/get_backend_service_health.rb +6 -6
  125. data/lib/fog/{google/requests/compute → compute/google/requests}/get_backend_services.rb +6 -6
  126. data/lib/fog/compute/google/requests/get_disk.rb +46 -0
  127. data/lib/fog/compute/google/requests/get_disk_type.rb +40 -0
  128. data/lib/fog/{google/requests/compute → compute/google/requests}/get_firewall.rb +3 -3
  129. data/lib/fog/compute/google/requests/get_forwarding_rule.rb +44 -0
  130. data/lib/fog/compute/google/requests/get_global_forwarding_rule.rb +30 -0
  131. data/lib/fog/{google/requests/compute → compute/google/requests}/get_global_operation.rb +8 -8
  132. data/lib/fog/compute/google/requests/get_http_health_check.rb +37 -0
  133. data/lib/fog/{google/requests/compute → compute/google/requests}/get_image.rb +4 -4
  134. data/lib/fog/{google/requests/compute → compute/google/requests}/get_instance_group.rb +5 -5
  135. data/lib/fog/compute/google/requests/get_machine_type.rb +41 -0
  136. data/lib/fog/{google/requests/compute → compute/google/requests}/get_network.rb +3 -3
  137. data/lib/fog/{google/requests/compute → compute/google/requests}/get_project.rb +2 -2
  138. data/lib/fog/{google/requests/compute → compute/google/requests}/get_region.rb +9 -9
  139. data/lib/fog/{google/requests/compute → compute/google/requests}/get_region_operation.rb +11 -11
  140. data/lib/fog/compute/google/requests/get_region_view.rb +24 -0
  141. data/lib/fog/{google/requests/compute → compute/google/requests}/get_route.rb +3 -3
  142. data/lib/fog/compute/google/requests/get_server.rb +71 -0
  143. data/lib/fog/{google/requests/compute → compute/google/requests}/get_server_serial_port_output.rb +4 -4
  144. data/lib/fog/{google/requests/compute → compute/google/requests}/get_snapshot.rb +5 -7
  145. data/lib/fog/compute/google/requests/get_subnetwork.rb +45 -0
  146. data/lib/fog/{google/requests/compute → compute/google/requests}/get_target_http_proxy.rb +4 -6
  147. data/lib/fog/compute/google/requests/get_target_instance.rb +28 -0
  148. data/lib/fog/{google/requests/compute → compute/google/requests}/get_target_pool.rb +6 -6
  149. data/lib/fog/{google/requests/compute → compute/google/requests}/get_target_pool_health.rb +7 -7
  150. data/lib/fog/{google/requests/compute → compute/google/requests}/get_url_map.rb +4 -6
  151. data/lib/fog/{google/requests/compute → compute/google/requests}/get_zone.rb +8 -8
  152. data/lib/fog/{google/requests/compute → compute/google/requests}/get_zone_operation.rb +10 -12
  153. data/lib/fog/compute/google/requests/get_zone_view.rb +24 -0
  154. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_address.rb +5 -5
  155. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_backend_service.rb +17 -17
  156. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_disk.rb +26 -30
  157. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_firewall.rb +4 -4
  158. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_forwarding_rule.rb +13 -13
  159. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_global_forwarding_rule.rb +13 -13
  160. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_http_health_check.rb +11 -11
  161. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_image.rb +14 -14
  162. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_instance_group.rb +6 -6
  163. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_network.rb +6 -6
  164. data/lib/fog/compute/google/requests/insert_region_view.rb +25 -0
  165. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_route.rb +11 -11
  166. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_server.rb +57 -57
  167. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_snapshot.rb +8 -8
  168. data/lib/fog/compute/google/requests/insert_subnetwork.rb +75 -0
  169. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_target_http_proxy.rb +9 -9
  170. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_target_instance.rb +11 -11
  171. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_target_pool.rb +11 -11
  172. data/lib/fog/{google/requests/compute → compute/google/requests}/insert_url_map.rb +9 -9
  173. data/lib/fog/compute/google/requests/insert_zone_view.rb +26 -0
  174. data/lib/fog/{google/requests/compute → compute/google/requests}/list_addresses.rb +3 -3
  175. data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_addresses.rb +3 -3
  176. data/lib/fog/compute/google/requests/list_aggregated_disk_types.rb +38 -0
  177. data/lib/fog/compute/google/requests/list_aggregated_disks.rb +37 -0
  178. data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_instance_groups.rb +3 -3
  179. data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_machine_types.rb +1 -1
  180. data/lib/fog/compute/google/requests/list_aggregated_servers.rb +37 -0
  181. data/lib/fog/compute/google/requests/list_aggregated_subnetworks.rb +34 -0
  182. data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_target_instances.rb +10 -13
  183. data/lib/fog/compute/google/requests/list_backend_services.rb +27 -0
  184. data/lib/fog/compute/google/requests/list_disk_types.rb +44 -0
  185. data/lib/fog/compute/google/requests/list_disks.rb +27 -0
  186. data/lib/fog/{google/requests/compute → compute/google/requests}/list_firewalls.rb +1 -1
  187. data/lib/fog/compute/google/requests/list_forwarding_rules.rb +27 -0
  188. data/lib/fog/compute/google/requests/list_global_forwarding_rules.rb +28 -0
  189. data/lib/fog/{google/requests/compute → compute/google/requests}/list_global_operations.rb +1 -1
  190. data/lib/fog/compute/google/requests/list_http_health_checks.rb +27 -0
  191. data/lib/fog/compute/google/requests/list_images.rb +27 -0
  192. data/lib/fog/{google/requests/compute → compute/google/requests}/list_instance_group_instances.rb +4 -4
  193. data/lib/fog/{google/requests/compute → compute/google/requests}/list_instance_groups.rb +3 -3
  194. data/lib/fog/{google/requests/compute → compute/google/requests}/list_machine_types.rb +6 -8
  195. data/lib/fog/{google/requests/compute → compute/google/requests}/list_networks.rb +1 -1
  196. data/lib/fog/{google/requests/compute → compute/google/requests}/list_region_operations.rb +3 -3
  197. data/lib/fog/compute/google/requests/list_region_view_resources.rb +24 -0
  198. data/lib/fog/compute/google/requests/list_region_views.rb +23 -0
  199. data/lib/fog/compute/google/requests/list_regions.rb +83 -0
  200. data/lib/fog/{google/requests/compute → compute/google/requests}/list_routes.rb +2 -2
  201. data/lib/fog/compute/google/requests/list_servers.rb +29 -0
  202. data/lib/fog/{google/requests/compute → compute/google/requests}/list_snapshots.rb +3 -3
  203. data/lib/fog/compute/google/requests/list_subnetworks.rb +35 -0
  204. data/lib/fog/compute/google/requests/list_target_http_proxies.rb +27 -0
  205. data/lib/fog/compute/google/requests/list_target_instances.rb +28 -0
  206. data/lib/fog/compute/google/requests/list_target_pools.rb +27 -0
  207. data/lib/fog/compute/google/requests/list_url_maps.rb +27 -0
  208. data/lib/fog/{google/requests/compute → compute/google/requests}/list_zone_operations.rb +3 -3
  209. data/lib/fog/compute/google/requests/list_zone_view_resources.rb +24 -0
  210. data/lib/fog/compute/google/requests/list_zone_views.rb +23 -0
  211. data/lib/fog/compute/google/requests/list_zones.rb +26 -0
  212. data/lib/fog/{google/requests/compute → compute/google/requests}/remove_instance_group_instance.rb +4 -4
  213. data/lib/fog/{google/requests/compute → compute/google/requests}/remove_target_pool_health_checks.rb +6 -6
  214. data/lib/fog/{google/requests/compute → compute/google/requests}/remove_target_pool_instance.rb +6 -6
  215. data/lib/fog/{google/requests/compute → compute/google/requests}/remove_target_pool_instances.rb +6 -6
  216. data/lib/fog/{google/requests/compute → compute/google/requests}/reset_server.rb +4 -4
  217. data/lib/fog/{google/requests/compute → compute/google/requests}/set_common_instance_metadata.rb +3 -3
  218. data/lib/fog/{google/requests/compute → compute/google/requests}/set_forwarding_rule_target.rb +6 -6
  219. data/lib/fog/{google/requests/compute → compute/google/requests}/set_global_forwarding_rule_target.rb +6 -6
  220. data/lib/fog/{google/requests/compute → compute/google/requests}/set_metadata.rb +8 -8
  221. data/lib/fog/{google/requests/compute → compute/google/requests}/set_server_disk_auto_delete.rb +6 -6
  222. data/lib/fog/{google/requests/compute → compute/google/requests}/set_server_scheduling.rb +7 -7
  223. data/lib/fog/{google/requests/compute → compute/google/requests}/set_tags.rb +6 -6
  224. data/lib/fog/{google/requests/compute → compute/google/requests}/set_target_http_proxy_url_map.rb +5 -5
  225. data/lib/fog/{google/requests/compute → compute/google/requests}/start_server.rb +4 -4
  226. data/lib/fog/{google/requests/compute → compute/google/requests}/stop_server.rb +4 -4
  227. data/lib/fog/{google/requests/compute → compute/google/requests}/update_url_map.rb +8 -8
  228. data/lib/fog/{google/requests/compute → compute/google/requests}/validate_url_map.rb +5 -5
  229. data/lib/fog/{google/dns.rb → dns/google.rb} +9 -9
  230. data/lib/fog/{google/models/dns → dns/google/models}/change.rb +5 -7
  231. data/lib/fog/{google/models/dns → dns/google/models}/changes.rb +1 -4
  232. data/lib/fog/{google/models/dns → dns/google/models}/project.rb +6 -8
  233. data/lib/fog/{google/models/dns → dns/google/models}/projects.rb +0 -3
  234. data/lib/fog/{google/models/dns → dns/google/models}/record.rb +17 -27
  235. data/lib/fog/{google/models/dns → dns/google/models}/records.rb +2 -5
  236. data/lib/fog/{google/models/dns → dns/google/models}/zone.rb +6 -8
  237. data/lib/fog/{google/models/dns → dns/google/models}/zones.rb +1 -4
  238. data/lib/fog/{google/requests/dns → dns/google/requests}/create_change.rb +17 -17
  239. data/lib/fog/dns/google/requests/create_managed_zone.rb +82 -0
  240. data/lib/fog/{google/requests/dns → dns/google/requests}/delete_managed_zone.rb +6 -6
  241. data/lib/fog/{google/requests/dns → dns/google/requests}/get_change.rb +7 -7
  242. data/lib/fog/{google/requests/dns → dns/google/requests}/get_managed_zone.rb +4 -4
  243. data/lib/fog/{google/requests/dns → dns/google/requests}/get_project.rb +12 -12
  244. data/lib/fog/{google/requests/dns → dns/google/requests}/list_changes.rb +7 -7
  245. data/lib/fog/{google/requests/dns → dns/google/requests}/list_managed_zones.rb +5 -5
  246. data/lib/fog/{google/requests/dns → dns/google/requests}/list_resource_record_sets.rb +11 -11
  247. data/lib/fog/google.rb +78 -71
  248. data/lib/fog/google/models/monitoring/metric_descriptor.rb +3 -3
  249. data/lib/fog/google/models/monitoring/metric_descriptors.rb +3 -3
  250. data/lib/fog/google/models/monitoring/timeseries.rb +2 -2
  251. data/lib/fog/google/models/monitoring/timeseries_collection.rb +3 -3
  252. data/lib/fog/google/models/monitoring/timeseries_descriptor.rb +1 -1
  253. data/lib/fog/google/models/monitoring/timeseries_descriptors.rb +3 -3
  254. data/lib/fog/google/models/sql/backup_run.rb +8 -8
  255. data/lib/fog/google/models/sql/backup_runs.rb +3 -3
  256. data/lib/fog/google/models/sql/flag.rb +5 -5
  257. data/lib/fog/google/models/sql/flags.rb +3 -3
  258. data/lib/fog/google/models/sql/instance.rb +54 -68
  259. data/lib/fog/google/models/sql/instances.rb +4 -4
  260. data/lib/fog/google/models/sql/operation.rb +15 -15
  261. data/lib/fog/google/models/sql/operations.rb +5 -5
  262. data/lib/fog/google/models/sql/ssl_cert.rb +17 -19
  263. data/lib/fog/google/models/sql/ssl_certs.rb +5 -5
  264. data/lib/fog/google/models/sql/tier.rb +3 -3
  265. data/lib/fog/google/models/sql/tiers.rb +3 -3
  266. data/lib/fog/google/monitoring.rb +8 -8
  267. data/lib/fog/google/requests/monitoring/list_metric_descriptors.rb +131 -131
  268. data/lib/fog/google/requests/monitoring/list_timeseries.rb +32 -32
  269. data/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb +50 -50
  270. data/lib/fog/google/requests/sql/clone_instance.rb +41 -41
  271. data/lib/fog/google/requests/sql/delete_instance.rb +26 -26
  272. data/lib/fog/google/requests/sql/delete_ssl_cert.rb +27 -27
  273. data/lib/fog/google/requests/sql/export_instance.rb +22 -22
  274. data/lib/fog/google/requests/sql/get_backup_run.rb +5 -5
  275. data/lib/fog/google/requests/sql/get_instance.rb +12 -12
  276. data/lib/fog/google/requests/sql/get_operation.rb +21 -21
  277. data/lib/fog/google/requests/sql/get_ssl_cert.rb +21 -21
  278. data/lib/fog/google/requests/sql/import_instance.rb +21 -21
  279. data/lib/fog/google/requests/sql/insert_instance.rb +76 -78
  280. data/lib/fog/google/requests/sql/insert_ssl_cert.rb +33 -33
  281. data/lib/fog/google/requests/sql/list_backup_runs.rb +4 -4
  282. data/lib/fog/google/requests/sql/list_flags.rb +84 -84
  283. data/lib/fog/google/requests/sql/list_instances.rb +3 -3
  284. data/lib/fog/google/requests/sql/list_operations.rb +13 -13
  285. data/lib/fog/google/requests/sql/list_ssl_certs.rb +13 -13
  286. data/lib/fog/google/requests/sql/list_tiers.rb +39 -39
  287. data/lib/fog/google/requests/sql/reset_instance_ssl_config.rb +16 -16
  288. data/lib/fog/google/requests/sql/restart_instance.rb +16 -16
  289. data/lib/fog/google/requests/sql/restore_instance_backup.rb +5 -5
  290. data/lib/fog/google/requests/sql/set_instance_root_password.rb +20 -20
  291. data/lib/fog/google/requests/sql/update_instance.rb +52 -52
  292. data/lib/fog/google/sql.rb +7 -7
  293. data/lib/fog/google/version.rb +1 -1
  294. data/lib/fog/parsers/storage/google.rb +15 -0
  295. data/lib/fog/{google/parsers/storage → parsers/storage/google}/access_control_list.rb +13 -13
  296. data/lib/fog/{google/parsers/storage → parsers/storage/google}/copy_object.rb +3 -3
  297. data/lib/fog/parsers/storage/google/get_bucket.rb +58 -0
  298. data/lib/fog/parsers/storage/google/get_bucket_logging.rb +36 -0
  299. data/lib/fog/parsers/storage/google/get_bucket_object_versions.rb +84 -0
  300. data/lib/fog/{google/parsers/storage → parsers/storage/google}/get_bucket_versioning.rb +3 -3
  301. data/lib/fog/{google/parsers/storage → parsers/storage/google}/get_request_payment.rb +1 -1
  302. data/lib/fog/{google/parsers/storage → parsers/storage/google}/get_service.rb +8 -8
  303. data/lib/fog/storage/google.rb +20 -0
  304. data/lib/fog/storage/google_json.rb +146 -0
  305. data/lib/fog/storage/google_json/models/directories.rb +26 -0
  306. data/lib/fog/storage/google_json/models/directory.rb +65 -0
  307. data/lib/fog/storage/google_json/models/file.rb +148 -0
  308. data/lib/fog/storage/google_json/models/files.rb +89 -0
  309. data/lib/fog/storage/google_json/requests/copy_object.rb +66 -0
  310. data/lib/fog/storage/google_json/requests/delete_bucket.rb +42 -0
  311. data/lib/fog/{google/requests/storage → storage/google_json/requests}/delete_object.rb +12 -12
  312. data/lib/fog/storage/google_json/requests/get_bucket.rb +86 -0
  313. data/lib/fog/{google/requests/storage → storage/google_json/requests}/get_bucket_acl.rb +12 -17
  314. data/lib/fog/storage/google_json/requests/get_object.rb +98 -0
  315. data/lib/fog/storage/google_json/requests/get_object_acl.rb +59 -0
  316. data/lib/fog/storage/google_json/requests/get_object_http_url.rb +40 -0
  317. data/lib/fog/storage/google_json/requests/get_object_https_url.rb +41 -0
  318. data/lib/fog/storage/google_json/requests/get_object_torrent.rb +13 -0
  319. data/lib/fog/storage/google_json/requests/get_object_url.rb +22 -0
  320. data/lib/fog/storage/google_json/requests/get_service.rb +54 -0
  321. data/lib/fog/storage/google_json/requests/head_object.rb +54 -0
  322. data/lib/fog/storage/google_json/requests/put_bucket.rb +68 -0
  323. data/lib/fog/storage/google_json/requests/put_bucket_acl.rb +34 -0
  324. data/lib/fog/storage/google_json/requests/put_object.rb +118 -0
  325. data/lib/fog/storage/google_json/requests/put_object_acl.rb +31 -0
  326. data/lib/fog/storage/google_json/requests/put_object_url.rb +45 -0
  327. data/lib/fog/{google/storage.rb → storage/google_xml.rb} +49 -53
  328. data/lib/fog/storage/google_xml/models/directories.rb +34 -0
  329. data/lib/fog/{google/models/storage → storage/google_xml/models}/directory.rb +13 -21
  330. data/lib/fog/{google/models/storage → storage/google_xml/models}/file.rb +34 -46
  331. data/lib/fog/{google/models/storage → storage/google_xml/models}/files.rb +21 -30
  332. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/copy_object.rb +15 -21
  333. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/delete_bucket.rb +10 -12
  334. data/lib/fog/storage/google_xml/requests/delete_object.rb +44 -0
  335. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_bucket.rb +33 -43
  336. data/lib/fog/storage/google_xml/requests/get_bucket_acl.rb +53 -0
  337. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object.rb +25 -37
  338. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_acl.rb +16 -24
  339. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_http_url.rb +8 -12
  340. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_https_url.rb +8 -12
  341. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_torrent.rb +10 -16
  342. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_url.rb +1 -1
  343. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_service.rb +13 -17
  344. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/head_object.rb +14 -20
  345. data/lib/fog/storage/google_xml/requests/put_bucket.rb +71 -0
  346. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/put_bucket_acl.rb +12 -14
  347. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/put_object.rb +23 -27
  348. data/lib/fog/{google/requests/storage → storage/google_xml/requests}/put_object_acl.rb +12 -14
  349. data/lib/fog/storage/google_xml/requests/put_object_url.rb +42 -0
  350. data/tasks/bundler.rake +3 -0
  351. data/tasks/console.rake +12 -0
  352. data/tasks/lint.rake +3 -0
  353. data/tasks/smoke.rake +15 -0
  354. data/tasks/test.rake +13 -0
  355. data/test/helpers/integration_test_helper.rb +3 -3
  356. data/test/helpers/test_collection.rb +1 -1
  357. data/test/helpers/test_helper.rb +8 -8
  358. data/test/integration/compute/test_servers.rb +1 -1
  359. data/test/integration/factories/backend_services_factory.rb +2 -2
  360. data/test/integration/factories/collection_factory.rb +4 -4
  361. data/test/integration/factories/disks_factory.rb +3 -3
  362. data/test/integration/factories/forwarding_rules_factory.rb +3 -4
  363. data/test/integration/factories/global_forwarding_rules_factory.rb +2 -2
  364. data/test/integration/factories/http_health_checks_factory.rb +1 -1
  365. data/test/integration/factories/images_factory.rb +2 -2
  366. data/test/integration/factories/servers_factory.rb +4 -4
  367. data/test/integration/factories/target_http_proxies_factory.rb +2 -2
  368. data/test/integration/factories/target_instances_factory.rb +3 -3
  369. data/test/integration/factories/target_pools_factory.rb +4 -4
  370. data/test/integration/factories/url_maps_factory.rb +2 -2
  371. data/test/integration/storage/test_buckets.rb +56 -0
  372. data/test/integration/storage/test_directories.rb +60 -0
  373. data/test/integration/storage/test_files.rb +132 -0
  374. data/test/integration/storage/test_objects.rb +111 -0
  375. data/test/integration/test_authentication.rb +14 -10
  376. data/tests/helper.rb +40 -42
  377. data/tests/helpers/collection_helper.rb +26 -37
  378. data/tests/helpers/compute/flavors_helper.rb +4 -8
  379. data/tests/helpers/compute/server_helper.rb +1 -5
  380. data/tests/helpers/compute/servers_helper.rb +0 -2
  381. data/tests/helpers/formats_helper.rb +12 -12
  382. data/tests/helpers/formats_helper_tests.rb +43 -47
  383. data/tests/helpers/mock_helper.rb +6 -8
  384. data/tests/helpers/model_helper.rb +6 -10
  385. data/tests/helpers/schema_validator_tests.rb +41 -47
  386. data/tests/helpers/succeeds_helper.rb +1 -1
  387. data/tests/models/dns/change_tests.rb +8 -10
  388. data/tests/models/dns/changes_tests.rb +8 -12
  389. data/tests/models/dns/projects_tests.rb +2 -5
  390. data/tests/models/dns/record_tests.rb +9 -10
  391. data/tests/models/dns/records_tests.rb +9 -13
  392. data/tests/models/dns/zone_tests.rb +6 -6
  393. data/tests/models/dns/zones_tests.rb +5 -5
  394. data/tests/models/monitoring/metric_descriptors_tests.rb +2 -5
  395. data/tests/models/monitoring/timeseries_collection_tests.rb +3 -6
  396. data/tests/models/monitoring/timeseries_descriptors_tests.rb +3 -6
  397. data/tests/models/sql/flags_tests.rb +2 -5
  398. data/tests/models/sql/instance_tests.rb +4 -7
  399. data/tests/models/sql/instances_tests.rb +4 -9
  400. data/tests/models/sql/operation_tests.rb +3 -6
  401. data/tests/models/sql/operations_tests.rb +4 -9
  402. data/tests/models/sql/ssl_cert_tests.rb +3 -6
  403. data/tests/models/sql/ssl_certs_tests.rb +4 -9
  404. data/tests/models/sql/tiers_tests.rb +2 -5
  405. data/tests/requests/compute/backend_service_tests.rb +43 -47
  406. data/tests/requests/compute/disk_tests.rb +42 -46
  407. data/tests/requests/compute/disk_type_tests.rb +18 -21
  408. data/tests/requests/compute/firewall_tests.rb +42 -45
  409. data/tests/requests/compute/forwarding_rules_tests.rb +44 -48
  410. data/tests/requests/compute/global_forwarding_rules_tests.rb +44 -48
  411. data/tests/requests/compute/http_health_checks_tests.rb +44 -48
  412. data/tests/requests/compute/image_tests.rb +41 -45
  413. data/tests/requests/compute/network_tests.rb +38 -41
  414. data/tests/requests/compute/operation_tests.rb +2 -3
  415. data/tests/requests/compute/region_tests.rb +18 -18
  416. data/tests/requests/compute/server_tests.rb +45 -47
  417. data/tests/requests/compute/target_http_proxies_test.rb +39 -43
  418. data/tests/requests/compute/target_instances_tests.rb +43 -47
  419. data/tests/requests/compute/target_pools_tests.rb +43 -47
  420. data/tests/requests/compute/url_maps_tests.rb +42 -46
  421. data/tests/requests/compute/zone_tests.rb +15 -19
  422. data/tests/requests/dns/change_tests.rb +18 -22
  423. data/tests/requests/dns/managed_zone_tests.rb +27 -30
  424. data/tests/requests/dns/project_tests.rb +13 -16
  425. data/tests/requests/dns/record_tests.rb +15 -18
  426. data/tests/requests/monitoring/metric_descriptor_tests.rb +9 -12
  427. data/tests/requests/monitoring/timeseries_collection_tests.rb +9 -12
  428. data/tests/requests/monitoring/timeseries_descriptor_tests.rb +10 -13
  429. data/tests/requests/sql/flag_tests.rb +11 -14
  430. data/tests/requests/sql/instance_tests.rb +36 -39
  431. data/tests/requests/sql/operation_tests.rb +17 -20
  432. data/tests/requests/sql/ssl_cert_tests.rb +21 -24
  433. data/tests/requests/sql/tier_tests.rb +9 -12
  434. data/tests/requests/storage/bucket_tests.rb +30 -36
  435. data/tests/requests/storage/object_tests.rb +21 -27
  436. metadata +309 -235
  437. data/examples/eric-fail.rb +0 -36
  438. data/examples/image_all.rb +0 -6
  439. data/examples/launch_micro_instance.rb +0 -29
  440. data/gemfiles/Gemfile.2.0.0+ +0 -6
  441. data/gemfiles/Gemfile.2.0.0- +0 -10
  442. data/lib/fog/google/models/compute/flavor.rb +0 -33
  443. data/lib/fog/google/models/compute/global_forwarding_rule.rb +0 -86
  444. data/lib/fog/google/models/compute/http_health_check.rb +0 -84
  445. data/lib/fog/google/models/compute/snapshot.rb +0 -48
  446. data/lib/fog/google/models/compute/zone.rb +0 -23
  447. data/lib/fog/google/models/storage/directories.rb +0 -39
  448. data/lib/fog/google/parsers/storage/get_bucket.rb +0 -58
  449. data/lib/fog/google/parsers/storage/get_bucket_logging.rb +0 -36
  450. data/lib/fog/google/parsers/storage/get_bucket_object_versions.rb +0 -84
  451. data/lib/fog/google/requests/compute/attach_disk.rb +0 -34
  452. data/lib/fog/google/requests/compute/get_disk.rb +0 -52
  453. data/lib/fog/google/requests/compute/get_disk_type.rb +0 -42
  454. data/lib/fog/google/requests/compute/get_forwarding_rule.rb +0 -46
  455. data/lib/fog/google/requests/compute/get_global_forwarding_rule.rb +0 -32
  456. data/lib/fog/google/requests/compute/get_http_health_check.rb +0 -39
  457. data/lib/fog/google/requests/compute/get_machine_type.rb +0 -43
  458. data/lib/fog/google/requests/compute/get_server.rb +0 -75
  459. data/lib/fog/google/requests/compute/get_target_instance.rb +0 -32
  460. data/lib/fog/google/requests/compute/list_aggregated_disk_types.rb +0 -40
  461. data/lib/fog/google/requests/compute/list_aggregated_disks.rb +0 -40
  462. data/lib/fog/google/requests/compute/list_aggregated_servers.rb +0 -40
  463. data/lib/fog/google/requests/compute/list_backend_services.rb +0 -29
  464. data/lib/fog/google/requests/compute/list_disk_types.rb +0 -46
  465. data/lib/fog/google/requests/compute/list_disks.rb +0 -29
  466. data/lib/fog/google/requests/compute/list_forwarding_rules.rb +0 -29
  467. data/lib/fog/google/requests/compute/list_global_forwarding_rules.rb +0 -30
  468. data/lib/fog/google/requests/compute/list_http_health_checks.rb +0 -29
  469. data/lib/fog/google/requests/compute/list_images.rb +0 -29
  470. data/lib/fog/google/requests/compute/list_regions.rb +0 -85
  471. data/lib/fog/google/requests/compute/list_servers.rb +0 -31
  472. data/lib/fog/google/requests/compute/list_target_http_proxies.rb +0 -30
  473. data/lib/fog/google/requests/compute/list_target_instances.rb +0 -30
  474. data/lib/fog/google/requests/compute/list_target_pools.rb +0 -29
  475. data/lib/fog/google/requests/compute/list_url_maps.rb +0 -29
  476. data/lib/fog/google/requests/compute/list_zones.rb +0 -28
  477. data/lib/fog/google/requests/dns/create_managed_zone.rb +0 -82
  478. data/lib/fog/google/requests/storage/put_bucket.rb +0 -71
  479. data/lib/fog/google/requests/storage/put_object_url.rb +0 -50
data/fog-google.gemspec CHANGED
@@ -1,16 +1,16 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'fog/google/version'
4
+ require "fog/google/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "fog-google"
8
8
  spec.version = Fog::Google::VERSION
9
- spec.authors = ["Nat Welch", "Daniel Broudy", "Isaac Hollander McCreery"]
10
- spec.email = ["nat@natwelch.com", "broudy@google.com", "ihmccreery@google.com"]
11
- spec.summary = %q{Module for the 'fog' gem to support Google.}
12
- spec.description = %q{This library can be used as a module for `fog` or as standalone provider
13
- to use the Google in applications.}
9
+ spec.authors = ["Nat Welch", "Daniel Broudy", "Isaac Hollander McCreery", "Dean Putney"]
10
+ spec.email = ["nat@natwelch.com", "broudy@google.com", "ihmccreery@google.com", "dean@glowforge.com"]
11
+ spec.summary = "Module for the 'fog' gem to support Google."
12
+ spec.description = 'This library can be used as a module for `fog` or as standalone provider
13
+ to use the Google in applications.'
14
14
  spec.homepage = "https://github.com/fog/fog-google"
15
15
  spec.license = "MIT"
16
16
 
@@ -19,19 +19,22 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency 'fog-core'
23
- spec.add_dependency 'fog-json'
24
- spec.add_dependency 'fog-xml'
25
- spec.add_development_dependency 'google-api-client', '~> 0.6', '>= 0.6.2'
26
- spec.add_development_dependency 'rake'
27
- spec.add_development_dependency 'shindo'
28
- spec.add_development_dependency 'minitest'
29
- spec.add_development_dependency 'pry'
30
- spec.add_development_dependency 'vcr'
31
- spec.add_development_dependency 'webmock'
22
+ # As of 0.1.1
23
+ spec.required_ruby_version = ">= 2.0"
32
24
 
33
- if RUBY_VERSION.to_f > 1.9
34
- spec.add_development_dependency 'coveralls'
35
- spec.add_development_dependency 'rubocop'
36
- end
25
+ spec.add_dependency "fog-core"
26
+ spec.add_dependency "fog-json"
27
+ spec.add_dependency "fog-xml"
28
+
29
+ # TODO: Upgrade to 0.9, which is not compatible.
30
+ spec.add_development_dependency "google-api-client", "< 0.9", ">= 0.6.2"
31
+ spec.add_development_dependency "rake"
32
+ spec.add_development_dependency "shindo"
33
+ spec.add_development_dependency "minitest"
34
+ spec.add_development_dependency "pry"
35
+ spec.add_development_dependency "vcr"
36
+ spec.add_development_dependency "webmock"
37
+ spec.add_development_dependency "coveralls"
38
+ spec.add_development_dependency "rubocop"
39
+ spec.add_development_dependency "mime-types"
37
40
  end
@@ -2,39 +2,41 @@ module Google # deviates from other bin stuff to accomodate gem
2
2
  class << self
3
3
  def class_for(key)
4
4
  case key
5
- when :compute
6
- Fog::Compute::Google
7
- when :dns
8
- Fog::DNS::Google
9
- when :monitoring
10
- Fog::Google::Monitoring
11
- when :storage
12
- Fog::Storage::Google
13
- when :sql
14
- Fog::Google::SQL
15
- else
16
- raise ArgumentError, "Unsupported #{self} service: #{key}"
5
+ when :compute
6
+ Fog::Compute::Google
7
+ when :dns
8
+ Fog::DNS::Google
9
+ when :monitoring
10
+ Fog::Google::Monitoring
11
+ when :storage
12
+ Fog::Storage::Google
13
+ when :storage_json
14
+ Fog::Storage::Google
15
+ when :sql
16
+ Fog::Google::SQL
17
+ else
18
+ raise ArgumentError, "Unsupported #{self} service: #{key}"
17
19
  end
18
20
  end
19
21
 
20
22
  def [](service)
21
23
  @@connections ||= Hash.new do |hash, key|
22
24
  hash[key] = case key
23
- when :compute
24
- Fog::Logger.warning("Google[:compute] is not recommended, use Compute[:google] for portability")
25
- Fog::Compute.new(:provider => 'Google')
26
- when :dns
27
- Fog::Logger.warning("Google[:dns] is not recommended, use DNS[:google] for portability")
28
- Fog::DNS.new(:provider => 'Google')
29
- when :monitoring
30
- Fog::Google::Monitoring.new
31
- when :sql
32
- Fog::Google::SQL.new
33
- when :storage
34
- Fog::Logger.warning("Google[:storage] is not recommended, use Storage[:google] for portability")
35
- Fog::Storage.new(:provider => 'Google')
36
- else
37
- raise ArgumentError, "Unrecognized service: #{key.inspect}"
25
+ when :compute
26
+ Fog::Logger.warning("Google[:compute] is not recommended, use Compute[:google] for portability")
27
+ Fog::Compute.new(:provider => "Google")
28
+ when :dns
29
+ Fog::Logger.warning("Google[:dns] is not recommended, use DNS[:google] for portability")
30
+ Fog::DNS.new(:provider => "Google")
31
+ when :monitoring
32
+ Fog::Google::Monitoring.new
33
+ when :sql
34
+ Fog::Google::SQL.new
35
+ when :storage
36
+ Fog::Logger.warning("Google[:storage] is not recommended, use Storage[:google] for portability")
37
+ Fog::Storage.new(:provider => "Google")
38
+ else
39
+ raise ArgumentError, "Unrecognized service: #{key.inspect}"
38
40
  end
39
41
  end
40
42
  @@connections[service]
@@ -52,14 +54,14 @@ module Google # deviates from other bin stuff to accomodate gem
52
54
  def available?
53
55
  # Make sure the gem we use is enabled.
54
56
  availability = if Gem::Specification.respond_to?(:find_all_by_name)
55
- !Gem::Specification.find_all_by_name('google-api-client').empty? # newest rubygems
57
+ !Gem::Specification.find_all_by_name("google-api-client").empty? # newest rubygems
56
58
  else
57
- !Gem.source_index.find_name('google-api-client').empty? # legacy
59
+ !Gem.source_index.find_name("google-api-client").empty? # legacy
58
60
  end
59
61
  # Then make sure we have all of the requirements
60
62
  for service in services
61
63
  begin
62
- service = self.class_for(service)
64
+ service = class_for(service)
63
65
  availability &&= service.requirements.all? { |requirement| Fog.credentials.include?(requirement) }
64
66
  rescue ArgumentError => e
65
67
  Fog::Logger.warning(e.message)
@@ -71,9 +73,9 @@ module Google # deviates from other bin stuff to accomodate gem
71
73
 
72
74
  if availability
73
75
  for service in services
74
- for collection in self.class_for(service).collections
76
+ for collection in class_for(service).collections
75
77
  unless self.respond_to?(collection)
76
- self.class_eval <<-EOS, __FILE__, __LINE__
78
+ class_eval <<-EOS, __FILE__, __LINE__
77
79
  def self.#{collection}
78
80
  self[:#{service}].#{collection}
79
81
  end
@@ -5,15 +5,15 @@ module Fog
5
5
  recognizes :app_name, :app_version, :google_client_email, :google_key_location, :google_key_string,
6
6
  :google_client, :google_json_key_location, :google_json_key_string, :google_extra_global_projects
7
7
 
8
- GOOGLE_COMPUTE_API_VERSION = 'v1'
9
- GOOGLE_COMPUTE_BASE_URL = 'https://www.googleapis.com/compute/'
8
+ GOOGLE_COMPUTE_API_VERSION = "v1"
9
+ GOOGLE_COMPUTE_BASE_URL = "https://www.googleapis.com/compute/"
10
10
  GOOGLE_COMPUTE_API_SCOPE_URLS = %w(https://www.googleapis.com/auth/compute
11
- https://www.googleapis.com/auth/devstorage.read_write
12
- https://www.googleapis.com/auth/ndev.cloudman
13
- https://www.googleapis.com/auth/cloud-platform)
14
- GOOGLE_COMPUTE_DEFAULT_NETWORK = 'default'
11
+ https://www.googleapis.com/auth/devstorage.read_write
12
+ https://www.googleapis.com/auth/ndev.cloudman
13
+ https://www.googleapis.com/auth/cloud-platform)
14
+ GOOGLE_COMPUTE_DEFAULT_NETWORK = "default"
15
15
 
16
- request_path 'fog/google/requests/compute'
16
+ request_path "fog/compute/google/requests"
17
17
  request :list_servers
18
18
  request :list_aggregated_servers
19
19
  request :list_addresses
@@ -41,11 +41,17 @@ module Fog
41
41
  request :list_global_forwarding_rules
42
42
  request :list_url_maps
43
43
  request :list_target_http_proxies
44
+ request :list_zone_views
45
+ request :list_region_views
46
+ request :list_region_view_resources
47
+ request :list_zone_view_resources
44
48
  request :list_target_instances
45
49
  request :list_aggregated_target_instances
46
50
  request :list_instance_groups
47
51
  request :list_aggregated_instance_groups
48
52
  request :list_instance_group_instances
53
+ request :list_subnetworks
54
+ request :list_aggregated_subnetworks
49
55
 
50
56
  request :get_server
51
57
  request :get_address
@@ -72,8 +78,11 @@ module Fog
72
78
  request :get_url_map
73
79
  request :get_global_forwarding_rule
74
80
  request :get_target_http_proxy
81
+ request :get_zone_view
82
+ request :get_region_view
75
83
  request :get_target_instance
76
84
  request :get_instance_group
85
+ request :get_subnetwork
77
86
 
78
87
  request :delete_address
79
88
  request :delete_disk
@@ -93,8 +102,11 @@ module Fog
93
102
  request :delete_url_map
94
103
  request :delete_target_http_proxy
95
104
  request :delete_global_forwarding_rule
105
+ request :delete_zone_view
106
+ request :delete_region_view
96
107
  request :delete_target_instance
97
108
  request :delete_instance_group
109
+ request :delete_subnetwork
98
110
 
99
111
  request :insert_address
100
112
  request :insert_disk
@@ -111,8 +123,11 @@ module Fog
111
123
  request :insert_url_map
112
124
  request :insert_target_http_proxy
113
125
  request :insert_global_forwarding_rule
126
+ request :insert_zone_view
127
+ request :insert_region_view
114
128
  request :insert_target_instance
115
129
  request :insert_instance_group
130
+ request :insert_subnetwork
116
131
 
117
132
  request :set_metadata
118
133
  request :set_tags
@@ -125,6 +140,8 @@ module Fog
125
140
  request :add_backend_service_backends
126
141
  request :add_url_map_host_rules
127
142
  request :add_url_map_path_matchers
143
+ request :add_zone_view_resources
144
+ request :add_region_view_resources
128
145
  request :add_instance_group_instance
129
146
 
130
147
  request :remove_target_pool_instances
@@ -145,7 +162,7 @@ module Fog
145
162
  request :start_server
146
163
  request :stop_server
147
164
 
148
- model_path 'fog/google/models/compute'
165
+ model_path "fog/compute/google/models"
149
166
  model :server
150
167
  collection :servers
151
168
 
@@ -218,6 +235,9 @@ module Fog
218
235
  model :instance_group
219
236
  collection :instance_groups
220
237
 
238
+ model :subnetwork
239
+ collection :subnetworks
240
+
221
241
  class Mock
222
242
  include Fog::Google::Shared
223
243
  attr_reader :extra_global_projects
@@ -230,7 +250,7 @@ module Fog
230
250
  def self.data(api_version)
231
251
  @data ||= Hash.new do |hash, key|
232
252
  case key
233
- when 'debian-cloud'
253
+ when "debian-cloud"
234
254
  hash[key] = {
235
255
  :images => {
236
256
  "debian-6-squeeze-v20130816" => {
@@ -292,7 +312,7 @@ module Fog
292
312
  }
293
313
  }
294
314
  }
295
- when 'centos-cloud'
315
+ when "centos-cloud"
296
316
  hash[key] = {
297
317
  :images => {
298
318
  "centos-6-v20130813" => {
@@ -317,9 +337,9 @@ module Fog
317
337
  "test-target-http-proxy" => {
318
338
  "kind" => "compute#targetHttpProxy",
319
339
  "id" => "1361932147851415729",
320
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
340
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00",
321
341
  "name" => "test-target-http-proxy",
322
- "description" => '',
342
+ "description" => "",
323
343
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies/test-target-http-proxy",
324
344
  "urlMap" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/urlMaps/test-url-map"
325
345
  }
@@ -328,9 +348,9 @@ module Fog
328
348
  "test-url-map" => {
329
349
  "kind" => "compute#urlMap",
330
350
  "id" => "1361932147851415729",
331
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
332
- "name" => 'test-url-map',
333
- "description" => '',
351
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00",
352
+ "name" => "test-url-map",
353
+ "description" => "",
334
354
  "hostRules" => [],
335
355
  "pathMatchers" => [],
336
356
  "tests" => [],
@@ -340,27 +360,27 @@ module Fog
340
360
  },
341
361
  :target_pools => {
342
362
  "test-target-pool" => {
343
- 'kind' => "compute#targetPool",
363
+ "kind" => "compute#targetPool",
344
364
  "id" => "1361932147851415729",
345
365
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1/targetPools/test-target-pool",
346
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
347
- 'name' => "test-target-pool",
366
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00",
367
+ "name" => "test-target-pool",
348
368
  "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1",
349
369
  "healthChecks" => ["https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks/test-check"],
350
- "instances" => ["https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a/instances/test-instance"],
370
+ "instances" => ["https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a/instances/test-instance"]
351
371
  }
352
372
  },
353
373
 
354
374
  :http_health_checks => {
355
375
  "test-http-health-check" => {
356
376
  "checkIntervalSec" => 5,
357
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
377
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00",
358
378
  "healthyThreshold" => 2,
359
379
  "id" => "1361932147851415729",
360
380
  "kind" => "compute#httphealthCheck",
361
381
  "name" => "test-http-health-check",
362
382
  "port" => 80,
363
- "requestPath" => '/',
383
+ "requestPath" => "/",
364
384
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks/test-http-health-check",
365
385
  "timeoutSec" => 5,
366
386
  "unhealthyThreshold" => 2
@@ -370,11 +390,11 @@ module Fog
370
390
  "test-global-forwarding-rule" => {
371
391
  "kind" => "compute#forwardingRule",
372
392
  "id" => "1361932147851415729",
373
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
374
- "name" => 'test-global-forwarding-rule',
375
- "IPAddress" => '107.178.255.155',
376
- "IPProtocol" => 'TCP',
377
- "portRange" => '80-80',
393
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00",
394
+ "name" => "test-global-forwarding-rule",
395
+ "IPAddress" => "107.178.255.155",
396
+ "IPProtocol" => "TCP",
397
+ "portRange" => "80-80",
378
398
  "target" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies/proxy",
379
399
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/forwardngRules/test-global-forwarding-rule"
380
400
  }
@@ -383,11 +403,11 @@ module Fog
383
403
  "test-forwarding-rule" => {
384
404
  "kind" => "compute#forwardingRule",
385
405
  "id" => "1361932147851415729",
386
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
387
- "name" => 'test-forwarding-rule',
388
- "IPAddress" => '107.178.255.155',
389
- "IPProtocol" => 'TCP',
390
- "portRange" => '80-80',
406
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00",
407
+ "name" => "test-forwarding-rule",
408
+ "IPAddress" => "107.178.255.155",
409
+ "IPProtocol" => "TCP",
410
+ "portRange" => "80-80",
391
411
  "target" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1/targetPools/target_pool",
392
412
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1/forwardngRules/test-forwarding-rule",
393
413
  "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1"
@@ -402,25 +422,25 @@ module Fog
402
422
  "instance" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a/instances/test-instance",
403
423
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a/targetInstances/test-target-instance",
404
424
  "id" => "1361932147851415729",
405
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
425
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00"
406
426
 
407
427
  }
408
428
  },
409
- :backend_services =>{
429
+ :backend_services => {
410
430
  "test-backend-service" => {
411
431
  "kind" => "compute#backend_service",
412
432
  "id" => "1361932147851415729",
413
- "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
433
+ "creationTimestamp" => "2014-08-23T10:06:13.951-07:00",
414
434
  "name" => "test-backend-service",
415
- "description" => '',
435
+ "description" => "",
416
436
  "backends" => [
417
- {
418
- "description" => '',
419
- "group" => "https://www.googleapis.com/resourceviews/v1beta1/projects#{@project}/zones/us-central1-a/zoneViews/name",
420
- "balancingMode" => "RATE",
421
- "capacityScaler" => 1.1,
422
- "maxRate" => 0.5,
423
- }],
437
+ {
438
+ "description" => "",
439
+ "group" => "https://www.googleapis.com/resourceviews/v1beta1/projects#{@project}/zones/us-central1-a/zoneViews/name",
440
+ "balancingMode" => "RATE",
441
+ "capacityScaler" => 1.1,
442
+ "maxRate" => 0.5
443
+ }],
424
444
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/backendServices/test-backend-service"
425
445
  }
426
446
  },
@@ -492,10 +512,10 @@ module Fog
492
512
  }
493
513
  ],
494
514
  "quotas" => [
495
- {"metric" => "INSTANCES", "limit" => 16.0, "usage" => 0.0},
496
- {"metric" => "CPUS", "limit" => 24.0, "usage" => 0.0},
497
- {"metric" => "DISKS", "limit" => 16.0, "usage" => 0.0},
498
- {"metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0}
515
+ { "metric" => "INSTANCES", "limit" => 16.0, "usage" => 0.0 },
516
+ { "metric" => "CPUS", "limit" => 24.0, "usage" => 0.0 },
517
+ { "metric" => "DISKS", "limit" => 16.0, "usage" => 0.0 },
518
+ { "metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0 }
499
519
  ],
500
520
  "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/europe-west1"
501
521
  },
@@ -509,10 +529,10 @@ module Fog
509
529
  "status" => "UP",
510
530
  "maintenanceWindows" => nil,
511
531
  "quotas" => [
512
- {"metric" => "INSTANCES", "limit" => 16.0, "usage" => 1.0},
513
- {"metric" => "CPUS", "limit" => 24.0, "usage" => 1.0},
514
- {"metric" => "DISKS", "limit" => 16.0, "usage" => 0.0},
515
- {"metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0}
532
+ { "metric" => "INSTANCES", "limit" => 16.0, "usage" => 1.0 },
533
+ { "metric" => "CPUS", "limit" => 24.0, "usage" => 1.0 },
534
+ { "metric" => "DISKS", "limit" => 16.0, "usage" => 0.0 },
535
+ { "metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0 }
516
536
  ],
517
537
  "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1"
518
538
  },
@@ -524,15 +544,15 @@ module Fog
524
544
  "name" => "us-central1-b",
525
545
  "description" => "us-central1-b",
526
546
  "status" => "UP",
527
- "maintenanceWindows" => [{"name" => "2013-10-26-planned-outage",
528
- "description" => "maintenance zone",
529
- "beginTime" => "2013-10-26T12:00:00.000-07:00",
530
- "endTime" => "2013-11-10T12:00:00.000-08:00"}],
547
+ "maintenanceWindows" => [{ "name" => "2013-10-26-planned-outage",
548
+ "description" => "maintenance zone",
549
+ "beginTime" => "2013-10-26T12:00:00.000-07:00",
550
+ "endTime" => "2013-11-10T12:00:00.000-08:00" }],
531
551
  "quotas" => [
532
- {"metric" => "INSTANCES", "limit" => 16.0, "usage" => 0.0},
533
- {"metric" => "CPUS", "limit" => 24.0, "usage" => 0.0},
534
- {"metric" => "DISKS", "limit" => 16.0, "usage" => 0.0},
535
- {"metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0}
552
+ { "metric" => "INSTANCES", "limit" => 16.0, "usage" => 0.0 },
553
+ { "metric" => "CPUS", "limit" => 24.0, "usage" => 0.0 },
554
+ { "metric" => "DISKS", "limit" => 16.0, "usage" => 0.0 },
555
+ { "metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0 }
536
556
  ],
537
557
  "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1"
538
558
  },
@@ -553,75 +573,75 @@ module Fog
553
573
  }
554
574
  ],
555
575
  "quotas" => [
556
- {"metric" => "INSTANCES", "limit" => 16.0, "usage" => 0.0},
557
- {"metric" => "CPUS", "limit" => 24.0, "usage" => 0.0},
558
- {"metric" => "DISKS", "limit" => 16.0, "usage" => 0.0},
559
- {"metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0}
576
+ { "metric" => "INSTANCES", "limit" => 16.0, "usage" => 0.0 },
577
+ { "metric" => "CPUS", "limit" => 24.0, "usage" => 0.0 },
578
+ { "metric" => "DISKS", "limit" => 16.0, "usage" => 0.0 },
579
+ { "metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0 }
560
580
  ],
561
581
  "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central2"
562
582
  }
563
583
  },
564
584
  :regions => {
565
585
  "us-central1" => {
566
- "creationTimestamp" => '2014-01-21T10:30:54.895-08:00',
567
- "description" => 'us-central1',
568
- "id" => '18201118976141502843',
586
+ "creationTimestamp" => "2014-01-21T10:30:54.895-08:00",
587
+ "description" => "us-central1",
588
+ "id" => "18201118976141502843",
569
589
  "kind" => "compute#region",
570
- "name" =>"us-central1",
590
+ "name" => "us-central1",
571
591
  "quotas" => [
572
- {"metric" =>"CPUS", "limit" => 1050.0, "usage" => 28.0},
573
- {"metric" =>"DISKS_TOTAL_GB", "limit" => 10000.0, "usage" => 292.0},
574
- {"metric" =>"STATIC_ADDRESSES", "limit" => 10.0, "usage" => 0.0},
575
- {"metric" =>"IN_USE_ADDRESSES", "limit" => 1050.0, "usage" => 30.0},
576
- {"metric" =>"SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0}
592
+ { "metric" => "CPUS", "limit" => 1050.0, "usage" => 28.0 },
593
+ { "metric" => "DISKS_TOTAL_GB", "limit" => 10_000.0, "usage" => 292.0 },
594
+ { "metric" => "STATIC_ADDRESSES", "limit" => 10.0, "usage" => 0.0 },
595
+ { "metric" => "IN_USE_ADDRESSES", "limit" => 1050.0, "usage" => 30.0 },
596
+ { "metric" => "SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0 }
577
597
  ],
578
598
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1",
579
599
  "status" => "UP",
580
- "zones" => [
600
+ "zones" => [
581
601
  "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a",
582
602
  "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-b",
583
- "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-f",
603
+ "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-f"
584
604
  ]
585
605
  },
586
606
  "europe-west1" => {
587
- "creationTimestamp" => '2014-01-21T10:30:54.891-08:00',
588
- "description" => 'europe-west1',
589
- "id" => '18201118976141502843',
607
+ "creationTimestamp" => "2014-01-21T10:30:54.891-08:00",
608
+ "description" => "europe-west1",
609
+ "id" => "18201118976141502843",
590
610
  "kind" => "compute#region",
591
- "name" =>"europe-west1",
611
+ "name" => "europe-west1",
592
612
  "quotas" => [
593
- {"metric" =>"CPUS", "limit" => 24.0, "usage" => 0.0},
594
- {"metric" =>"DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0},
595
- {"metric" =>"STATIC_ADDRESSES", "limit" => 7.0, "usage" => 0.0},
596
- {"metric" =>"IN_USE_ADDRESSES", "limit" => 23.0, "usage" => 0.0},
597
- {"metric" =>"SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0}
613
+ { "metric" => "CPUS", "limit" => 24.0, "usage" => 0.0 },
614
+ { "metric" => "DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0 },
615
+ { "metric" => "STATIC_ADDRESSES", "limit" => 7.0, "usage" => 0.0 },
616
+ { "metric" => "IN_USE_ADDRESSES", "limit" => 23.0, "usage" => 0.0 },
617
+ { "metric" => "SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0 }
598
618
  ],
599
619
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/erope-west1",
600
620
  "status" => "UP",
601
- "zones" => [
621
+ "zones" => [
602
622
  "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/europe-west1-a",
603
- "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/europe-west1-b",
623
+ "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/europe-west1-b"
604
624
  ]
605
625
  },
606
626
  "asia-east1" => {
607
- "creationTimestamp" => '2014-01-21T10:30:54.895-08:00',
608
- "description" => 'asia-east1',
609
- "id" => '18201118976141502843',
627
+ "creationTimestamp" => "2014-01-21T10:30:54.895-08:00",
628
+ "description" => "asia-east1",
629
+ "id" => "18201118976141502843",
610
630
  "kind" => "compute#region",
611
- "name" =>"asia-east1",
631
+ "name" => "asia-east1",
612
632
  "quotas" => [
613
- {"metric" =>"CPUS", "limit" => 1050.0, "usage" => 28.0},
614
- {"metric" =>"DISKS_TOTAL_GB", "limit" => 10000.0, "usage" => 292.0},
615
- {"metric" =>"STATIC_ADDRESSES", "limit" => 10.0, "usage" => 0.0},
616
- {"metric" =>"IN_USE_ADDRESSES", "limit" => 1050.0, "usage" => 30.0},
617
- {"metric" =>"SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0}
633
+ { "metric" => "CPUS", "limit" => 1050.0, "usage" => 28.0 },
634
+ { "metric" => "DISKS_TOTAL_GB", "limit" => 10_000.0, "usage" => 292.0 },
635
+ { "metric" => "STATIC_ADDRESSES", "limit" => 10.0, "usage" => 0.0 },
636
+ { "metric" => "IN_USE_ADDRESSES", "limit" => 1050.0, "usage" => 30.0 },
637
+ { "metric" => "SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0 }
618
638
  ],
619
639
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/asia-east1",
620
640
  "status" => "UP",
621
- "zones" => [
641
+ "zones" => [
622
642
  "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/asia-east1-a",
623
643
  "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/asia-east1-b",
624
- "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/asia-east1-c",
644
+ "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/asia-east1-c"
625
645
  ]
626
646
  }
627
647
  },
@@ -680,9 +700,9 @@ module Fog
680
700
  "memoryMb" => 1843,
681
701
  "imageSpaceGb" => 10,
682
702
  "scratchDisks" => [
683
- {
684
- "diskGb" => 870
685
- }
703
+ {
704
+ "diskGb" => 870
705
+ }
686
706
  ],
687
707
  "maximumPersistentDisks" => 16,
688
708
  "maximumPersistentDisksSizeGb" => "10240",
@@ -713,9 +733,9 @@ module Fog
713
733
  "memoryMb" => 3686,
714
734
  "imageSpaceGb" => 10,
715
735
  "scratchDisks" => [
716
- {
717
- "diskGb" => 1770
718
- }
736
+ {
737
+ "diskGb" => 1770
738
+ }
719
739
  ],
720
740
  "maximumPersistentDisks" => 16,
721
741
  "maximumPersistentDisksSizeGb" => "10240",
@@ -746,12 +766,12 @@ module Fog
746
766
  "memoryMb" => 7373,
747
767
  "imageSpaceGb" => 10,
748
768
  "scratchDisks" => [
749
- {
750
- "diskGb" => 1770
751
- },
752
- {
753
- "diskGb" => 1770
754
- }
769
+ {
770
+ "diskGb" => 1770
771
+ },
772
+ {
773
+ "diskGb" => 1770
774
+ }
755
775
  ],
756
776
  "maximumPersistentDisks" => 16,
757
777
  "maximumPersistentDisksSizeGb" => "10240",
@@ -765,7 +785,7 @@ module Fog
765
785
  "name" => "n1-highmem-2",
766
786
  "description" => "2 vCPUs, 13 GB RAM",
767
787
  "guestCpus" => 2,
768
- "memoryMb" => 13312,
788
+ "memoryMb" => 13_312,
769
789
  "imageSpaceGb" => 10,
770
790
  "maximumPersistentDisks" => 16,
771
791
  "maximumPersistentDisksSizeGb" => "10240",
@@ -779,12 +799,12 @@ module Fog
779
799
  "name" => "n1-highmem-2-d",
780
800
  "description" => "2 vCPUs, 13 GB RAM, 1 scratch disk (870 GB)",
781
801
  "guestCpus" => 2,
782
- "memoryMb" => 13312,
802
+ "memoryMb" => 13_312,
783
803
  "imageSpaceGb" => 10,
784
804
  "scratchDisks" => [
785
- {
786
- "diskGb" => 870
787
- }
805
+ {
806
+ "diskGb" => 870
807
+ }
788
808
  ],
789
809
  "maximumPersistentDisks" => 16,
790
810
  "maximumPersistentDisksSizeGb" => "10240",
@@ -798,7 +818,7 @@ module Fog
798
818
  "name" => "n1-highmem-4",
799
819
  "description" => "4 vCPUs, 26 GB RAM",
800
820
  "guestCpus" => 4,
801
- "memoryMb" => 26624,
821
+ "memoryMb" => 26_624,
802
822
  "imageSpaceGb" => 10,
803
823
  "maximumPersistentDisks" => 16,
804
824
  "maximumPersistentDisksSizeGb" => "10240",
@@ -812,12 +832,12 @@ module Fog
812
832
  "name" => "n1-highmem-4-d",
813
833
  "description" => "4 vCPUs, 26 GB RAM, 1 scratch disk (1770 GB)",
814
834
  "guestCpus" => 4,
815
- "memoryMb" => 26624,
835
+ "memoryMb" => 26_624,
816
836
  "imageSpaceGb" => 10,
817
837
  "scratchDisks" => [
818
- {
819
- "diskGb" => 1770
820
- }
838
+ {
839
+ "diskGb" => 1770
840
+ }
821
841
  ],
822
842
  "maximumPersistentDisks" => 16,
823
843
  "maximumPersistentDisksSizeGb" => "10240",
@@ -831,7 +851,7 @@ module Fog
831
851
  "name" => "n1-highmem-8",
832
852
  "description" => "8 vCPUs, 52 GB RAM",
833
853
  "guestCpus" => 8,
834
- "memoryMb" => 53248,
854
+ "memoryMb" => 53_248,
835
855
  "imageSpaceGb" => 10,
836
856
  "maximumPersistentDisks" => 16,
837
857
  "maximumPersistentDisksSizeGb" => "10240",
@@ -845,15 +865,15 @@ module Fog
845
865
  "name" => "n1-highmem-8-d",
846
866
  "description" => "8 vCPUs, 52 GB RAM, 2 scratch disks (1770 GB, 1770 GB)",
847
867
  "guestCpus" => 8,
848
- "memoryMb" => 53248,
868
+ "memoryMb" => 53_248,
849
869
  "imageSpaceGb" => 10,
850
870
  "scratchDisks" => [
851
- {
852
- "diskGb" => 1770
853
- },
854
- {
855
- "diskGb" => 1770
856
- }
871
+ {
872
+ "diskGb" => 1770
873
+ },
874
+ {
875
+ "diskGb" => 1770
876
+ }
857
877
  ],
858
878
  "maximumPersistentDisks" => 16,
859
879
  "maximumPersistentDisksSizeGb" => "10240",
@@ -884,9 +904,9 @@ module Fog
884
904
  "memoryMb" => 3840,
885
905
  "imageSpaceGb" => 10,
886
906
  "scratchDisks" => [
887
- {
888
- "diskGb" => 420
889
- }
907
+ {
908
+ "diskGb" => 420
909
+ }
890
910
  ],
891
911
  "maximumPersistentDisks" => 16,
892
912
  "maximumPersistentDisksSizeGb" => "10240",
@@ -917,9 +937,9 @@ module Fog
917
937
  "memoryMb" => 7680,
918
938
  "imageSpaceGb" => 10,
919
939
  "scratchDisks" => [
920
- {
921
- "diskGb" => 870
922
- }
940
+ {
941
+ "diskGb" => 870
942
+ }
923
943
  ],
924
944
  "maximumPersistentDisks" => 16,
925
945
  "maximumPersistentDisksSizeGb" => "10240",
@@ -933,7 +953,7 @@ module Fog
933
953
  "name" => "n1-standard-4",
934
954
  "description" => "4 vCPUs, 15 GB RAM",
935
955
  "guestCpus" => 4,
936
- "memoryMb" => 15360,
956
+ "memoryMb" => 15_360,
937
957
  "imageSpaceGb" => 10,
938
958
  "maximumPersistentDisks" => 16,
939
959
  "maximumPersistentDisksSizeGb" => "10240",
@@ -947,12 +967,12 @@ module Fog
947
967
  "name" => "n1-standard-4-d",
948
968
  "description" => "4 vCPUs, 15 GB RAM, 1 scratch disk (1770 GB)",
949
969
  "guestCpus" => 4,
950
- "memoryMb" => 15360,
970
+ "memoryMb" => 15_360,
951
971
  "imageSpaceGb" => 10,
952
972
  "scratchDisks" => [
953
- {
954
- "diskGb" => 1770
955
- }
973
+ {
974
+ "diskGb" => 1770
975
+ }
956
976
  ],
957
977
  "maximumPersistentDisks" => 16,
958
978
  "maximumPersistentDisksSizeGb" => "10240",
@@ -966,7 +986,7 @@ module Fog
966
986
  "name" => "n1-standard-8",
967
987
  "description" => "8 vCPUs, 30 GB RAM",
968
988
  "guestCpus" => 8,
969
- "memoryMb" => 30720,
989
+ "memoryMb" => 30_720,
970
990
  "imageSpaceGb" => 10,
971
991
  "maximumPersistentDisks" => 16,
972
992
  "maximumPersistentDisksSizeGb" => "10240",
@@ -980,21 +1000,21 @@ module Fog
980
1000
  "name" => "n1-standard-8-d",
981
1001
  "description" => "8 vCPUs, 30 GB RAM, 2 scratch disks (1770 GB, 1770 GB)",
982
1002
  "guestCpus" => 8,
983
- "memoryMb" => 30720,
1003
+ "memoryMb" => 30_720,
984
1004
  "imageSpaceGb" => 10,
985
1005
  "scratchDisks" => [
986
- {
987
- "diskGb" => 1770
988
- },
989
- {
990
- "diskGb" => 1770
991
- }
1006
+ {
1007
+ "diskGb" => 1770
1008
+ },
1009
+ {
1010
+ "diskGb" => 1770
1011
+ }
992
1012
  ],
993
1013
  "maximumPersistentDisks" => 16,
994
1014
  "maximumPersistentDisksSizeGb" => "10240",
995
1015
  "zone" => zone,
996
1016
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/#{zone}/machineTypes/n1-standard-8-d"
997
- }
1017
+ }
998
1018
  }
999
1019
  end,
1000
1020
  :images => {},
@@ -1010,7 +1030,7 @@ module Fog
1010
1030
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1",
1011
1031
  "sourceImage" => "https://www.googleapis.com/compute/#{api_version}/projects/debian-cloud/global/images/debian-7-wheezy-v20131120",
1012
1032
  "sourceImageId" => "17312518942796567788",
1013
- "type" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/diskTypes/pd-standard",
1033
+ "type" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/diskTypes/pd-standard"
1014
1034
  },
1015
1035
  "fog-2" => {
1016
1036
  "kind" => "compute#disk",
@@ -1021,9 +1041,44 @@ module Fog
1021
1041
  "name" => "fog-2",
1022
1042
  "sizeGb" => "10",
1023
1043
  "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1",
1024
- "type" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/diskTypes/pd-ssd",
1044
+ "type" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/diskTypes/pd-ssd"
1025
1045
  }
1026
1046
  },
1047
+ :subnetworks => {
1048
+ "fog-1" => {
1049
+ "kind" => "compute#subnetwork",
1050
+ "id" => "6680781458098159920",
1051
+ "creationTimestamp" => "2016-03-19T19:13:51.613-07:00",
1052
+ "gatewayAddress" => "10.1.0.1",
1053
+ "name" => "fog-1",
1054
+ "network" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/global/networks/fog-example",
1055
+ "ipCidrRange" => "10.1.0.0/20",
1056
+ "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1",
1057
+ "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1/subnetworks/fog-1"
1058
+ },
1059
+ "fog-2" => {
1060
+ "kind" => "compute#subnetwork",
1061
+ "id" => "6680781458098159921",
1062
+ "creationTimestamp" => "2016-03-19T19:13:51.613-07:00",
1063
+ "gatewayAddress" => "10.1.16.1",
1064
+ "name" => "fog-2",
1065
+ "network" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/global/networks/fog-example",
1066
+ "ipCidrRange" => "10.1.16.0/20",
1067
+ "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/europe-west1",
1068
+ "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/europe-west1/subnetworks/fog-2"
1069
+ },
1070
+ "fog-3" => {
1071
+ "kind" => "compute#subnetwork",
1072
+ "id" => "6680781458098159923",
1073
+ "creationTimestamp" => "2016-03-19T19:13:51.613-07:00",
1074
+ "gatewayAddress" => "192.168.20.1",
1075
+ "name" => "fog-3",
1076
+ "network" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/global/networks/fog-elsewhere-example",
1077
+ "ipCidrRange" => "192.168.20.0/20",
1078
+ "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1",
1079
+ "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1/subnetworks/fog-3"
1080
+ },
1081
+ },
1027
1082
  :operations => {}
1028
1083
  }
1029
1084
  end
@@ -1034,7 +1089,7 @@ module Fog
1034
1089
  @data = nil
1035
1090
  end
1036
1091
 
1037
- def data(project=@project)
1092
+ def data(project = @project)
1038
1093
  self.class.data(api_version)[project]
1039
1094
  end
1040
1095
 
@@ -1056,15 +1111,16 @@ module Fog
1056
1111
 
1057
1112
  def initialize(options)
1058
1113
  shared_initialize(options[:google_project], GOOGLE_COMPUTE_API_VERSION, GOOGLE_COMPUTE_BASE_URL)
1059
- options.merge!(:google_api_scope_url => GOOGLE_COMPUTE_API_SCOPE_URLS.join(' '))
1114
+ options.merge!(:google_api_scope_url => GOOGLE_COMPUTE_API_SCOPE_URLS.join(" "))
1060
1115
 
1061
1116
  @client = initialize_google_client(options)
1062
- @compute = @client.discovered_api('compute', api_version)
1117
+ @compute = @client.discovered_api("compute", api_version)
1118
+ @resourceviews = @client.discovered_api("resourceviews", "v1beta1")
1063
1119
  @extra_global_projects = options[:google_extra_global_projects] || []
1064
1120
  end
1065
1121
  end
1066
1122
 
1067
- RUNNING = 'RUNNING'
1123
+ RUNNING = "RUNNING"
1068
1124
  end
1069
1125
  end
1070
1126
  end