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
@@ -1,6 +1,3 @@
1
- require 'fog/core/collection'
2
- require 'fog/google/models/compute/project'
3
-
4
1
  module Fog
5
2
  module Compute
6
3
  class Google
@@ -1,5 +1,3 @@
1
- require 'fog/core/model'
2
-
3
1
  module Fog
4
2
  module Compute
5
3
  class Google
@@ -12,19 +10,19 @@ module Fog
12
10
 
13
11
  attribute :kind
14
12
  attribute :id
15
- attribute :creation_timestamp, :aliases => 'creationTimestamp'
13
+ attribute :creation_timestamp, :aliases => "creationTimestamp"
16
14
  attribute :deprecated
17
15
  attribute :description
18
16
  attribute :quotas
19
- attribute :self_link, :aliases => 'selfLink'
17
+ attribute :self_link, :aliases => "selfLink"
20
18
  attribute :status
21
19
  attribute :zones
22
20
 
23
- DOWN_STATE = 'DOWN'
24
- UP_STATE = 'UP'
21
+ DOWN_STATE = "DOWN"
22
+ UP_STATE = "UP"
25
23
 
26
24
  def up?
27
- self.status == UP_STATE
25
+ status == UP_STATE
28
26
  end
29
27
  end
30
28
  end
@@ -1,6 +1,3 @@
1
- require 'fog/core/collection'
2
- require 'fog/google/models/compute/region'
3
-
4
1
  module Fog
5
2
  module Compute
6
3
  class Google
@@ -9,7 +6,7 @@ module Fog
9
6
 
10
7
  def all
11
8
  data = service.list_regions.body
12
- load(data['items'] || [])
9
+ load(data["items"] || [])
13
10
  end
14
11
 
15
12
  def get(identity)
@@ -0,0 +1,108 @@
1
+ module Fog
2
+ module Compute
3
+ class Google
4
+ # the resource view model creates either a region view or zone view depending on which is parameter is passed
5
+ class ResourceView < Fog::Model
6
+ identity :name
7
+
8
+ attribute :kind, :aliases => "kind"
9
+ attribute :self_link, :aliases => "selfLink"
10
+ attribute :id, :aliases => "id"
11
+ attribute :creation_timestamp, :aliases => "creationTimestamp"
12
+ attribute :description, :aliases => "description"
13
+ attribute :region, :aliases => "region" # string, required for region views
14
+ attribute :labels, :aliases => "labels" # array of hashes including 'key' and 'value' as keys
15
+ attribute :zone, :aliases => "zone" # string, required for zone views
16
+ attribute :last_modified, :aliases => "lastModified"
17
+ attribute :members, :aliases => "members" # array of members of resource view
18
+ attribute :num_members, :aliases => "numMemebers" # integer
19
+
20
+ def save
21
+ requires :name
22
+ labels ||= []
23
+ members ||= []
24
+
25
+ if region
26
+ options = {
27
+ "description" => description,
28
+ "labels" => labels,
29
+ "lastModified" => last_modified,
30
+ "members" => members,
31
+ "numMembers" => num_members
32
+ }
33
+ @region = region
34
+ data = service.insert_region_view(name, region, options).body
35
+ operation = service.get_region_view(data["resource"]["name"], nil, @region).body
36
+ end
37
+
38
+ if zone
39
+ options = {
40
+ "description" => description,
41
+ "labels" => labels,
42
+ "lastModified" => last_modified,
43
+ "members" => members,
44
+ "numMembers" => num_members
45
+ }
46
+ @zone = zone
47
+ data = service.insert_zone_view(name, zone, options).body
48
+ operation = service.get_zone_view(data["resource"]["name"], @zone).body
49
+ end
50
+ reload
51
+ end
52
+
53
+ def destroy(async = false)
54
+ requires :name
55
+ # parse the self link to get the zone or region
56
+ selflink = self_link.split("/")
57
+ if selflink[7] == "regions"
58
+ operation = service.delete_region_view(name, selflink[8])
59
+ end
60
+
61
+ if selflink[7] == "zones"
62
+ operation = service.delete_zone_view(name, selflink[8])
63
+ end
64
+
65
+ unless async
66
+ # wait until "DONE" to ensure the operation doesn't fail, raises
67
+ # exception on error
68
+ Fog.wait_for do
69
+ operation.body.nil?
70
+ end
71
+ end
72
+ operation
73
+ end
74
+
75
+ def add_resources(resources)
76
+ resources = [resources] unless resources.class == Array
77
+ resources.map { |resource| resource.class == String ? resource : resource.self_link }
78
+ service.add_zone_view_resources(self, resources, @zone) if @zone
79
+ service.add_region_view_resources(self, reources, @region) if @region
80
+ reload
81
+ end
82
+
83
+ def ready?
84
+ service.get_zone_view(name, @zone) if @zone
85
+ service.get_region_view(name, @region) if @region
86
+ true
87
+ rescue Fog::Errors::NotFound
88
+ false
89
+ end
90
+
91
+ def reload
92
+ requires :name
93
+
94
+ return unless data = begin
95
+ collection.get(name, region, zone)
96
+ rescue Excon::Errors::SocketError
97
+ nil
98
+ end
99
+
100
+ new_attributes = data.attributes
101
+ merge_attributes(new_attributes)
102
+ self
103
+ end
104
+ RUNNING_STATE = "READY"
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,54 @@
1
+ module Fog
2
+ module Compute
3
+ class Google
4
+ class ResourceViews < Fog::Collection
5
+ model Fog::Compute::Google::ResourceView
6
+
7
+ def all(filters = {})
8
+ if filters["region"].nil? && filters["zone"].nil?
9
+ data = []
10
+ service.list_regions.body["items"].each do |region|
11
+ data += service.list_region_views(region["name"]).body["items"] || []
12
+ end
13
+ service.list_zones.body["items"].each do |zone|
14
+ data += service.list_zone_views(zone["name"]).body["items"] || []
15
+ end
16
+ elsif filters["zone"]
17
+ data = service.list_zone_views(filters["zone"]).body["items"] || []
18
+ else
19
+ data = service.list_region_views(filters["region"]).body["items"] || []
20
+ end
21
+ load(data)
22
+ end
23
+
24
+ def get(identity, region = nil, zone = nil)
25
+ response = nil
26
+
27
+ if region.nil? & zone.nil?
28
+ service.list_regions.body["items"].each do |region|
29
+ begin
30
+ response = service.get_region_view(identity, region["name"])
31
+ break if response.status == 200
32
+ rescue Fog::Errors::Error
33
+ end
34
+ end
35
+ service.list_zones.body["items"].each do |zone|
36
+ begin
37
+ response = service.get_zone_view(identity, zone["name"])
38
+ break if response.status == 200
39
+ rescue Fog::Errors::Error
40
+ end
41
+ end
42
+ elsif region
43
+ response = service.get_region_view(identity, region)
44
+ else
45
+ response = service.get_zone_view(identity, zone)
46
+ end
47
+
48
+ return nil if response.nil?
49
+ new(response.body)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -1,5 +1,3 @@
1
- require 'fog/core/model'
2
-
3
1
  module Fog
4
2
  module Compute
5
3
  class Google
@@ -12,36 +10,34 @@ module Fog
12
10
 
13
11
  attribute :kind
14
12
  attribute :id
15
- attribute :creation_timestamp, :aliases => 'creationTimestamp'
13
+ attribute :creation_timestamp, :aliases => "creationTimestamp"
16
14
  attribute :description
17
- attribute :dest_range, :aliases => 'destRange'
15
+ attribute :dest_range, :aliases => "destRange"
18
16
  attribute :network
19
- attribute :next_hop_gateway, :aliases => 'nextHopGateway'
20
- attribute :next_hop_instance, :aliases => 'nextHopInstance'
21
- attribute :next_hop_ip, :aliases => 'nextHopIp'
22
- attribute :next_hop_network, :aliases => 'nextHopNetwork'
17
+ attribute :next_hop_gateway, :aliases => "nextHopGateway"
18
+ attribute :next_hop_instance, :aliases => "nextHopInstance"
19
+ attribute :next_hop_ip, :aliases => "nextHopIp"
20
+ attribute :next_hop_network, :aliases => "nextHopNetwork"
23
21
  attribute :priority
24
- attribute :self_link, :aliases => 'selfLink'
22
+ attribute :self_link, :aliases => "selfLink"
25
23
  attribute :tags
26
24
  attribute :warnings
27
25
 
28
26
  def save
29
27
  requires :identity, :network, :dest_range, :priority
30
28
 
31
- data = service.insert_route(identity, self.network, self.dest_range, self.priority, self.attributes)
32
- operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'])
29
+ data = service.insert_route(identity, network, dest_range, priority, attributes)
30
+ operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"])
33
31
  operation.wait_for { !pending? }
34
32
  reload
35
33
  end
36
34
 
37
- def destroy(async=true)
35
+ def destroy(async = true)
38
36
  requires :identity
39
37
 
40
38
  data = service.delete_route(identity)
41
- operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'])
42
- unless async
43
- operation.wait_for { ready? }
44
- end
39
+ operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"])
40
+ operation.wait_for { ready? } unless async
45
41
  operation
46
42
  end
47
43
  end
@@ -1,6 +1,3 @@
1
- require 'fog/core/collection'
2
- require 'fog/google/models/compute/route'
3
-
4
1
  module Fog
5
2
  module Compute
6
3
  class Google
@@ -9,7 +6,7 @@ module Fog
9
6
 
10
7
  def all
11
8
  data = service.list_routes.body
12
- load(data['items'] || [])
9
+ load(data["items"] || [])
13
10
  end
14
11
 
15
12
  def get(identity)
@@ -1,5 +1,4 @@
1
- require 'fog/compute/models/server'
2
- require 'net/ssh/proxy/command'
1
+ require "fog/compute/models/server"
3
2
 
4
3
  module Fog
5
4
  module Compute
@@ -9,25 +8,25 @@ module Fog
9
8
 
10
9
  attribute :kind
11
10
  attribute :id
12
- attribute :can_ip_forward, :aliases => 'canIpForward'
13
- attribute :creation_timestamp, :aliases => 'creationTimestamp'
11
+ attribute :can_ip_forward, :aliases => "canIpForward"
12
+ attribute :creation_timestamp, :aliases => "creationTimestamp"
14
13
  attribute :description
15
14
  attribute :disks
16
- attribute :machine_type, :aliases => 'machineType'
15
+ attribute :machine_type, :aliases => "machineType"
17
16
  attribute :metadata
18
- attribute :network_interfaces, :aliases => 'networkInterfaces'
17
+ attribute :network_interfaces, :aliases => "networkInterfaces"
19
18
  attribute :scheduling
20
- attribute :self_link, :aliases => 'selfLink'
21
- attribute :service_accounts, :aliases => 'serviceAccounts'
22
- attribute :state, :aliases => 'status'
23
- attribute :status_message, :aliases => 'statusMessage'
19
+ attribute :self_link, :aliases => "selfLink"
20
+ attribute :service_accounts, :aliases => "serviceAccounts"
21
+ attribute :state, :aliases => "status"
22
+ attribute :status_message, :aliases => "statusMessage"
24
23
  attribute :tags
25
24
  attribute :zone, :aliases => :zone_name
26
25
 
27
26
  # These attributes are not available in the representation of an 'instance' returned by the GCE API.
28
27
  # They are useful only for the create process
29
- attribute :network, :aliases => 'network'
30
- attribute :external_ip, :aliases => 'externalIP'
28
+ attribute :network, :aliases => "network"
29
+ attribute :external_ip, :aliases => "externalIP"
31
30
  attribute :auto_restart
32
31
  attribute :on_host_maintenance
33
32
  attribute :preemptible
@@ -35,33 +34,33 @@ module Fog
35
34
  # Security account scope aliases used by official gcloud utility
36
35
  # List derived from 'gcloud compute instances create --help'
37
36
  GCE_SCOPE_ALIASES = {
38
- 'compute-ro' => 'compute.readonly',
39
- 'compute-rw' => 'compute',
40
- 'computeaccounts-ro' => 'computeaccounts.readonly',
41
- 'computeaccounts-rw' => 'computeaccounts',
42
- 'logging-write' => 'logging.write',
43
- 'sql' => 'sqlservice',
44
- 'sql-admin' => 'sqlservice.admin',
45
- 'storage-full' => 'devstorage.full_control',
46
- 'storage-ro' => 'devstorage.read_only',
47
- 'storage-rw' => 'devstorage.read_write'
48
- }
49
-
50
- def image_name=(args)
37
+ "compute-ro" => "compute.readonly",
38
+ "compute-rw" => "compute",
39
+ "computeaccounts-ro" => "computeaccounts.readonly",
40
+ "computeaccounts-rw" => "computeaccounts",
41
+ "logging-write" => "logging.write",
42
+ "sql" => "sqlservice",
43
+ "sql-admin" => "sqlservice.admin",
44
+ "storage-full" => "devstorage.full_control",
45
+ "storage-ro" => "devstorage.read_only",
46
+ "storage-rw" => "devstorage.read_write"
47
+ }
48
+
49
+ def image_name=(_args)
51
50
  Fog::Logger.deprecation("image_name= is no longer used [light_black](#{caller.first})[/]")
52
51
  end
53
52
 
54
53
  def image_name
55
54
  boot_disk = disks.first
56
55
  unless boot_disk.is_a?(Disk)
57
- source = boot_disk['source']
56
+ source = boot_disk["source"]
58
57
  match = source.match(%r{/zones/(.*)/disks/(.*)$})
59
58
  boot_disk = service.disks.get match[2], match[1]
60
59
  end
61
60
  boot_disk.source_image.nil? ? nil : boot_disk.source_image
62
61
  end
63
62
 
64
- def kernel=(args)
63
+ def kernel=(_args)
65
64
  Fog::Logger.deprecation("kernel= is no longer used [light_black](#{caller.first})[/]")
66
65
  end
67
66
 
@@ -75,35 +74,32 @@ module Fog
75
74
  end
76
75
 
77
76
  def flavor_id=(flavor_id)
78
- machine_type=flavor_id
77
+ machine_type = flavor_id
79
78
  end
80
79
 
81
- def destroy(async=true)
80
+ def destroy(async = true)
82
81
  requires :name, :zone
83
82
 
84
83
  data = service.delete_server(name, zone_name)
85
- operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
86
- unless async
87
- operation.wait_for { ready? }
88
- end
84
+ operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
85
+ operation.wait_for { ready? } unless async
89
86
  operation
90
87
  end
91
88
 
92
89
  # not used since v1
93
90
  def image
94
91
  Fog::Logger.deprecation("Server.image is deprecated, get source_image from boot disk")
95
- service.get_image(self.image_name.split('/')[-1])
92
+ service.get_image(image_name.split("/")[-1])
96
93
  end
97
94
 
98
95
  def public_ip_address
99
96
  ip = nil
100
- if self.network_interfaces.respond_to? :each
101
- self.network_interfaces.each do |netif|
102
- if netif["accessConfigs"].respond_to? :each
103
- netif["accessConfigs"].each do |access_config|
104
- if access_config["name"] == "External NAT"
105
- ip = access_config['natIP']
106
- end
97
+ if network_interfaces.respond_to? :each
98
+ network_interfaces.each do |netif|
99
+ next unless netif["accessConfigs"].respond_to? :each
100
+ netif["accessConfigs"].each do |access_config|
101
+ if access_config["name"] == "External NAT"
102
+ ip = access_config["natIP"]
107
103
  end
108
104
  end
109
105
  end
@@ -114,8 +110,8 @@ module Fog
114
110
 
115
111
  def private_ip_address
116
112
  ip = nil
117
- if self.network_interfaces.respond_to? :first
118
- ip = self.network_interfaces.first['networkIP']
113
+ if network_interfaces.respond_to? :first
114
+ ip = network_interfaces.first["networkIP"]
119
115
  end
120
116
  ip
121
117
  end
@@ -128,102 +124,95 @@ module Fog
128
124
  requires :identity, :zone
129
125
 
130
126
  data = service.attach_disk(identity, zone_name, disk, options)
131
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
127
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
132
128
  end
133
129
 
134
130
  def detach_disk(device_name)
135
131
  requires :identity, :zone
136
132
 
137
133
  data = service.detach_disk(identity, zone, device_name)
138
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
134
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
139
135
  end
140
136
 
141
137
  def reboot
142
138
  requires :identity, :zone
143
139
 
144
140
  data = service.reset_server(identity, zone_name)
145
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
141
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
146
142
  end
147
143
 
148
144
  def start
149
145
  requires :identity, :zone
150
146
 
151
147
  data = service.start_server(identity, zone_name)
152
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
148
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
153
149
  end
154
150
 
155
151
  def stop
156
152
  requires :identity, :zone
157
153
 
158
154
  data = service.stop_server(identity, zone_name)
159
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
155
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
160
156
  end
161
157
 
162
158
  def serial_port_output
163
159
  requires :identity, :zone
164
160
 
165
161
  data = service.get_server_serial_port_output(identity, zone_name)
166
- data.body['contents']
162
+ data.body["contents"]
167
163
  end
168
164
 
169
165
  def set_disk_auto_delete(auto_delete, device_name)
170
166
  requires :identity, :zone
171
167
 
172
168
  data = service.set_server_disk_auto_delete(identity, zone_name, auto_delete, device_name)
173
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
169
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
174
170
  end
175
171
 
176
172
  def set_scheduling(on_host_maintenance, automatic_restart, preemptible)
177
173
  requires :identity, :zone
178
174
 
179
175
  data = service.set_server_scheduling(identity, zone_name, on_host_maintenance, automatic_restart, preemptible)
180
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
176
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
181
177
  end
182
178
 
183
179
  def set_metadata(metadata = {})
184
180
  requires :identity, :zone
185
181
 
186
- data = service.set_metadata(identity, zone_name, self.metadata['fingerprint'], metadata)
187
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
182
+ data = service.set_metadata(identity, zone_name, self.metadata["fingerprint"], metadata)
183
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
188
184
  end
189
185
 
190
186
  def set_tags(tags = [])
191
187
  requires :identity, :zone
192
188
 
193
- data = service.set_tags(identity, zone_name, self.tags['fingerprint'], tags)
194
- Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
189
+ data = service.set_tags(identity, zone_name, self.tags["fingerprint"], tags)
190
+ Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
195
191
  end
196
192
 
197
193
  def ready?
198
- self.state == RUNNING
194
+ state == RUNNING
199
195
  end
200
196
 
201
197
  def zone_name
202
- zone.nil? ? nil : zone.split('/')[-1]
198
+ zone.nil? ? nil : zone.split("/")[-1]
203
199
  end
204
200
 
205
- def add_ssh_key username, key
206
- if self.metadata.nil?
207
- self.metadata = Hash.new("")
208
- end
201
+ def add_ssh_key(username, key)
202
+ self.metadata = Hash.new("") if metadata.nil?
209
203
 
210
204
  # You can have multiple SSH keys, seperated by newlines.
211
205
  # https://developers.google.com/compute/docs/console?hl=en#sshkeys
212
- if !self.metadata["sshKeys"]
213
- self.metadata["sshKeys"] = ""
214
- end
206
+ metadata["sshKeys"] = "" unless metadata["sshKeys"]
215
207
 
216
- if !self.metadata["sshKeys"].empty?
217
- self.metadata["sshKeys"] += "\n"
218
- end
208
+ metadata["sshKeys"] += "\n" unless metadata["sshKeys"].empty?
219
209
 
220
- self.metadata["sshKeys"] += "#{username}:#{key.strip}"
210
+ metadata["sshKeys"] += "#{username}:#{key.strip}"
221
211
 
222
- return self.metadata
212
+ metadata
223
213
  end
224
214
 
225
215
  def map_service_accounts(scope_array)
226
-
227
216
  scope_array_expanded = scope_array.map do |e|
228
217
  if GCE_SCOPE_ALIASES[e]
229
218
  GCE_SCOPE_ALIASES[e]
@@ -240,12 +229,12 @@ module Fog
240
229
  end
241
230
  end
242
231
 
243
- return scope_array_finalized
232
+ scope_array_finalized
244
233
  end
245
234
 
246
235
  def reload
247
- data = service.get_server(self.name, zone_name).body
248
- self.merge_attributes(data)
236
+ data = service.get_server(name, zone_name).body
237
+ merge_attributes(data)
249
238
  end
250
239
 
251
240
  def save
@@ -254,37 +243,37 @@ module Fog
254
243
  requires :zone_name
255
244
  requires :disks
256
245
 
257
- if not service.zones.find{ |zone| zone.name == self.zone_name }
258
- raise ArgumentError.new "#{self.zone_name.inspect} is either down or you don't have permission to use it."
246
+ unless service.zones.detect { |zone| zone.name == zone_name }
247
+ raise ArgumentError.new "#{zone_name.inspect} is either down or you don't have permission to use it."
259
248
  end
260
249
 
261
- self.add_ssh_key(self.username, self.public_key) if self.public_key
250
+ add_ssh_key(username, public_key) if public_key
262
251
 
263
252
  options = {
264
- 'machineType' => machine_type,
265
- 'networkInterfaces' => network_interfaces,
266
- 'network' => network,
267
- 'externalIp' => external_ip,
268
- 'disks' => disks,
269
- 'metadata' => metadata,
270
- 'serviceAccounts' => service_accounts,
271
- 'tags' => tags,
272
- 'auto_restart' => auto_restart,
273
- 'on_host_maintenance' => on_host_maintenance,
274
- 'preemptible' => preemptible,
275
- 'can_ip_forward' => can_ip_forward
276
- }.delete_if {|key, value| value.nil?}
253
+ "machineType" => machine_type,
254
+ "networkInterfaces" => network_interfaces,
255
+ "network" => network,
256
+ "externalIp" => external_ip,
257
+ "disks" => disks,
258
+ "metadata" => metadata,
259
+ "serviceAccounts" => service_accounts,
260
+ "tags" => tags,
261
+ "auto_restart" => auto_restart,
262
+ "on_host_maintenance" => on_host_maintenance,
263
+ "preemptible" => preemptible,
264
+ "can_ip_forward" => can_ip_forward
265
+ }.delete_if { |_key, value| value.nil? }
277
266
 
278
267
  if service_accounts
279
- options['serviceAccounts'] = [{
268
+ options["serviceAccounts"] = [{
280
269
  "kind" => "compute#serviceAccount",
281
270
  "email" => "default",
282
- "scopes" => self.map_service_accounts(service_accounts)
271
+ "scopes" => map_service_accounts(service_accounts)
283
272
  }]
284
273
  end
285
274
 
286
275
  data = service.insert_server(name, zone_name, options)
287
- operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
276
+ operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"])
288
277
  operation.wait_for { !pending? }
289
278
  reload
290
279
  end