fog-google 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.editorconfig +11 -0
- data/.gitignore +1 -0
- data/.hound.yml +2 -0
- data/.rubocop.yml +225 -5
- data/.travis.yml +13 -11
- data/CONTRIBUTORS.md +1 -0
- data/Gemfile +1 -1
- data/README.md +31 -16
- data/Rakefile +15 -39
- data/examples/backend_services.rb +12 -11
- data/examples/bootstrap.rb +11 -1
- data/examples/{create.rb → create_instance.rb} +20 -11
- data/examples/dns/project.rb +2 -3
- data/examples/dns/zones.rb +21 -21
- data/examples/get_list_images.rb +31 -15
- data/examples/get_list_snapshots.rb +20 -10
- data/examples/image_create.rb +5 -5
- data/examples/l7_load_balance.rb +56 -58
- data/examples/load-balance.rb +22 -23
- data/examples/metadata.rb +17 -9
- data/examples/monitoring/metric_descriptors.rb +19 -6
- data/examples/monitoring/timeseries_collection.rb +23 -11
- data/examples/monitoring/timeseries_descriptors.rb +23 -11
- data/examples/network.rb +25 -29
- data/examples/precreated_client.rb +3 -6
- data/examples/sql/flags.rb +2 -2
- data/examples/sql/instances.rb +18 -18
- data/examples/sql/operations.rb +9 -9
- data/examples/sql/ssl_certs.rb +13 -13
- data/examples/sql/tiers.rb +2 -2
- data/examples/storage.rb +37 -0
- data/examples/storage_json.rb +37 -0
- data/fog-google.gemspec +24 -21
- data/lib/fog/bin/google.rb +34 -32
- data/lib/fog/{google/compute.rb → compute/google.rb} +207 -151
- data/lib/fog/{google/models/compute → compute/google/models}/address.rb +24 -28
- data/lib/fog/{google/models/compute → compute/google/models}/addresses.rb +10 -14
- data/lib/fog/{google/models/compute → compute/google/models}/backend_service.rb +28 -34
- data/lib/fog/{google/models/compute → compute/google/models}/backend_services.rb +2 -5
- data/lib/fog/{google/models/compute → compute/google/models}/disk.rb +35 -39
- data/lib/fog/{google/models/compute → compute/google/models}/disk_type.rb +4 -6
- data/lib/fog/{google/models/compute → compute/google/models}/disk_types.rb +7 -10
- data/lib/fog/{google/models/compute → compute/google/models}/disks.rb +9 -12
- data/lib/fog/{google/models/compute → compute/google/models}/firewall.rb +10 -14
- data/lib/fog/{google/models/compute → compute/google/models}/firewalls.rb +1 -4
- data/lib/fog/compute/google/models/flavor.rb +31 -0
- data/lib/fog/{google/models/compute → compute/google/models}/flavors.rb +2 -5
- data/lib/fog/{google/models/compute → compute/google/models}/forwarding_rule.rb +24 -28
- data/lib/fog/{google/models/compute → compute/google/models}/forwarding_rules.rb +8 -11
- data/lib/fog/compute/google/models/global_forwarding_rule.rb +82 -0
- data/lib/fog/{google/models/compute → compute/google/models}/global_forwarding_rules.rb +2 -5
- data/lib/fog/compute/google/models/http_health_check.rb +80 -0
- data/lib/fog/{google/models/compute → compute/google/models}/http_health_checks.rb +2 -5
- data/lib/fog/{google/models/compute → compute/google/models}/image.rb +18 -22
- data/lib/fog/{google/models/compute → compute/google/models}/images.rb +24 -17
- data/lib/fog/{google/models/compute → compute/google/models}/instance_group.rb +5 -8
- data/lib/fog/{google/models/compute → compute/google/models}/instance_groups.rb +10 -13
- data/lib/fog/{google/models/compute → compute/google/models}/network.rb +9 -13
- data/lib/fog/{google/models/compute → compute/google/models}/networks.rb +1 -4
- data/lib/fog/{google/models/compute → compute/google/models}/operation.rb +16 -18
- data/lib/fog/{google/models/compute → compute/google/models}/operations.rb +8 -11
- data/lib/fog/{google/models/compute → compute/google/models}/project.rb +5 -7
- data/lib/fog/{google/models/compute → compute/google/models}/projects.rb +0 -3
- data/lib/fog/{google/models/compute → compute/google/models}/region.rb +5 -7
- data/lib/fog/{google/models/compute → compute/google/models}/regions.rb +1 -4
- data/lib/fog/compute/google/models/resource_view.rb +108 -0
- data/lib/fog/compute/google/models/resource_views.rb +54 -0
- data/lib/fog/{google/models/compute → compute/google/models}/route.rb +12 -16
- data/lib/fog/{google/models/compute → compute/google/models}/routes.rb +1 -4
- data/lib/fog/{google/models/compute → compute/google/models}/server.rb +81 -92
- data/lib/fog/{google/models/compute → compute/google/models}/servers.rb +13 -16
- data/lib/fog/compute/google/models/snapshot.rb +44 -0
- data/lib/fog/{google/models/compute → compute/google/models}/snapshots.rb +1 -4
- data/lib/fog/compute/google/models/subnetwork.rb +49 -0
- data/lib/fog/compute/google/models/subnetworks.rb +29 -0
- data/lib/fog/{google/models/compute → compute/google/models}/target_http_proxies.rb +2 -5
- data/lib/fog/{google/models/compute → compute/google/models}/target_http_proxy.rb +18 -22
- data/lib/fog/{google/models/compute → compute/google/models}/target_instance.rb +23 -28
- data/lib/fog/{google/models/compute → compute/google/models}/target_instances.rb +9 -12
- data/lib/fog/{google/models/compute → compute/google/models}/target_pool.rb +24 -28
- data/lib/fog/{google/models/compute → compute/google/models}/target_pools.rb +6 -9
- data/lib/fog/{google/models/compute → compute/google/models}/url_map.rb +32 -36
- data/lib/fog/{google/models/compute → compute/google/models}/url_maps.rb +1 -4
- data/lib/fog/compute/google/models/zone.rb +21 -0
- data/lib/fog/{google/models/compute → compute/google/models}/zones.rb +0 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/add_backend_service_backends.rb +5 -5
- data/lib/fog/{google/requests/compute → compute/google/requests}/add_instance_group_instance.rb +4 -4
- data/lib/fog/compute/google/requests/add_region_view_resources.rb +27 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/add_server_access_config.rb +8 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/add_target_pool_health_checks.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/add_target_pool_instances.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/add_url_map_host_rules.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/add_url_map_path_matchers.rb +7 -7
- data/lib/fog/compute/google/requests/add_zone_view_resources.rb +27 -0
- data/lib/fog/compute/google/requests/attach_disk.rb +34 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_address.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_backend_service.rb +8 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_disk.rb +9 -11
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_firewall.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_forwarding_rule.rb +8 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_global_forwarding_rule.rb +12 -12
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_global_operation.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_http_health_check.rb +7 -7
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_image.rb +7 -7
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_instance_group.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_network.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_region_operation.rb +6 -6
- data/lib/fog/compute/google/requests/delete_region_view.rb +24 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_route.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_server.rb +15 -17
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_server_access_config.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_snapshot.rb +3 -3
- data/lib/fog/compute/google/requests/delete_subnetwork.rb +49 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_target_http_proxy.rb +7 -7
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_target_instance.rb +9 -11
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_target_pool.rb +8 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_url_map.rb +7 -7
- data/lib/fog/{google/requests/compute → compute/google/requests}/delete_zone_operation.rb +5 -7
- data/lib/fog/compute/google/requests/delete_zone_view.rb +24 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/detach_disk.rb +5 -5
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_address.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_backend_service.rb +5 -7
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_backend_service_health.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_backend_services.rb +6 -6
- data/lib/fog/compute/google/requests/get_disk.rb +46 -0
- data/lib/fog/compute/google/requests/get_disk_type.rb +40 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_firewall.rb +3 -3
- data/lib/fog/compute/google/requests/get_forwarding_rule.rb +44 -0
- data/lib/fog/compute/google/requests/get_global_forwarding_rule.rb +30 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_global_operation.rb +8 -8
- data/lib/fog/compute/google/requests/get_http_health_check.rb +37 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_image.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_instance_group.rb +5 -5
- data/lib/fog/compute/google/requests/get_machine_type.rb +41 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_network.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_project.rb +2 -2
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_region.rb +9 -9
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_region_operation.rb +11 -11
- data/lib/fog/compute/google/requests/get_region_view.rb +24 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_route.rb +3 -3
- data/lib/fog/compute/google/requests/get_server.rb +71 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_server_serial_port_output.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_snapshot.rb +5 -7
- data/lib/fog/compute/google/requests/get_subnetwork.rb +45 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_target_http_proxy.rb +4 -6
- data/lib/fog/compute/google/requests/get_target_instance.rb +28 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_target_pool.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_target_pool_health.rb +7 -7
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_url_map.rb +4 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_zone.rb +8 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/get_zone_operation.rb +10 -12
- data/lib/fog/compute/google/requests/get_zone_view.rb +24 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_address.rb +5 -5
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_backend_service.rb +17 -17
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_disk.rb +26 -30
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_firewall.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_forwarding_rule.rb +13 -13
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_global_forwarding_rule.rb +13 -13
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_http_health_check.rb +11 -11
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_image.rb +14 -14
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_instance_group.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_network.rb +6 -6
- data/lib/fog/compute/google/requests/insert_region_view.rb +25 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_route.rb +11 -11
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_server.rb +57 -57
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_snapshot.rb +8 -8
- data/lib/fog/compute/google/requests/insert_subnetwork.rb +75 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_target_http_proxy.rb +9 -9
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_target_instance.rb +11 -11
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_target_pool.rb +11 -11
- data/lib/fog/{google/requests/compute → compute/google/requests}/insert_url_map.rb +9 -9
- data/lib/fog/compute/google/requests/insert_zone_view.rb +26 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_addresses.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_addresses.rb +3 -3
- data/lib/fog/compute/google/requests/list_aggregated_disk_types.rb +38 -0
- data/lib/fog/compute/google/requests/list_aggregated_disks.rb +37 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_instance_groups.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_machine_types.rb +1 -1
- data/lib/fog/compute/google/requests/list_aggregated_servers.rb +37 -0
- data/lib/fog/compute/google/requests/list_aggregated_subnetworks.rb +34 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_aggregated_target_instances.rb +10 -13
- data/lib/fog/compute/google/requests/list_backend_services.rb +27 -0
- data/lib/fog/compute/google/requests/list_disk_types.rb +44 -0
- data/lib/fog/compute/google/requests/list_disks.rb +27 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_firewalls.rb +1 -1
- data/lib/fog/compute/google/requests/list_forwarding_rules.rb +27 -0
- data/lib/fog/compute/google/requests/list_global_forwarding_rules.rb +28 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_global_operations.rb +1 -1
- data/lib/fog/compute/google/requests/list_http_health_checks.rb +27 -0
- data/lib/fog/compute/google/requests/list_images.rb +27 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_instance_group_instances.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_instance_groups.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_machine_types.rb +6 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_networks.rb +1 -1
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_region_operations.rb +3 -3
- data/lib/fog/compute/google/requests/list_region_view_resources.rb +24 -0
- data/lib/fog/compute/google/requests/list_region_views.rb +23 -0
- data/lib/fog/compute/google/requests/list_regions.rb +83 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_routes.rb +2 -2
- data/lib/fog/compute/google/requests/list_servers.rb +29 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_snapshots.rb +3 -3
- data/lib/fog/compute/google/requests/list_subnetworks.rb +35 -0
- data/lib/fog/compute/google/requests/list_target_http_proxies.rb +27 -0
- data/lib/fog/compute/google/requests/list_target_instances.rb +28 -0
- data/lib/fog/compute/google/requests/list_target_pools.rb +27 -0
- data/lib/fog/compute/google/requests/list_url_maps.rb +27 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/list_zone_operations.rb +3 -3
- data/lib/fog/compute/google/requests/list_zone_view_resources.rb +24 -0
- data/lib/fog/compute/google/requests/list_zone_views.rb +23 -0
- data/lib/fog/compute/google/requests/list_zones.rb +26 -0
- data/lib/fog/{google/requests/compute → compute/google/requests}/remove_instance_group_instance.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/remove_target_pool_health_checks.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/remove_target_pool_instance.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/remove_target_pool_instances.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/reset_server.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_common_instance_metadata.rb +3 -3
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_forwarding_rule_target.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_global_forwarding_rule_target.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_metadata.rb +8 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_server_disk_auto_delete.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_server_scheduling.rb +7 -7
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_tags.rb +6 -6
- data/lib/fog/{google/requests/compute → compute/google/requests}/set_target_http_proxy_url_map.rb +5 -5
- data/lib/fog/{google/requests/compute → compute/google/requests}/start_server.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/stop_server.rb +4 -4
- data/lib/fog/{google/requests/compute → compute/google/requests}/update_url_map.rb +8 -8
- data/lib/fog/{google/requests/compute → compute/google/requests}/validate_url_map.rb +5 -5
- data/lib/fog/{google/dns.rb → dns/google.rb} +9 -9
- data/lib/fog/{google/models/dns → dns/google/models}/change.rb +5 -7
- data/lib/fog/{google/models/dns → dns/google/models}/changes.rb +1 -4
- data/lib/fog/{google/models/dns → dns/google/models}/project.rb +6 -8
- data/lib/fog/{google/models/dns → dns/google/models}/projects.rb +0 -3
- data/lib/fog/{google/models/dns → dns/google/models}/record.rb +17 -27
- data/lib/fog/{google/models/dns → dns/google/models}/records.rb +2 -5
- data/lib/fog/{google/models/dns → dns/google/models}/zone.rb +6 -8
- data/lib/fog/{google/models/dns → dns/google/models}/zones.rb +1 -4
- data/lib/fog/{google/requests/dns → dns/google/requests}/create_change.rb +17 -17
- data/lib/fog/dns/google/requests/create_managed_zone.rb +82 -0
- data/lib/fog/{google/requests/dns → dns/google/requests}/delete_managed_zone.rb +6 -6
- data/lib/fog/{google/requests/dns → dns/google/requests}/get_change.rb +7 -7
- data/lib/fog/{google/requests/dns → dns/google/requests}/get_managed_zone.rb +4 -4
- data/lib/fog/{google/requests/dns → dns/google/requests}/get_project.rb +12 -12
- data/lib/fog/{google/requests/dns → dns/google/requests}/list_changes.rb +7 -7
- data/lib/fog/{google/requests/dns → dns/google/requests}/list_managed_zones.rb +5 -5
- data/lib/fog/{google/requests/dns → dns/google/requests}/list_resource_record_sets.rb +11 -11
- data/lib/fog/google.rb +78 -71
- data/lib/fog/google/models/monitoring/metric_descriptor.rb +3 -3
- data/lib/fog/google/models/monitoring/metric_descriptors.rb +3 -3
- data/lib/fog/google/models/monitoring/timeseries.rb +2 -2
- data/lib/fog/google/models/monitoring/timeseries_collection.rb +3 -3
- data/lib/fog/google/models/monitoring/timeseries_descriptor.rb +1 -1
- data/lib/fog/google/models/monitoring/timeseries_descriptors.rb +3 -3
- data/lib/fog/google/models/sql/backup_run.rb +8 -8
- data/lib/fog/google/models/sql/backup_runs.rb +3 -3
- data/lib/fog/google/models/sql/flag.rb +5 -5
- data/lib/fog/google/models/sql/flags.rb +3 -3
- data/lib/fog/google/models/sql/instance.rb +54 -68
- data/lib/fog/google/models/sql/instances.rb +4 -4
- data/lib/fog/google/models/sql/operation.rb +15 -15
- data/lib/fog/google/models/sql/operations.rb +5 -5
- data/lib/fog/google/models/sql/ssl_cert.rb +17 -19
- data/lib/fog/google/models/sql/ssl_certs.rb +5 -5
- data/lib/fog/google/models/sql/tier.rb +3 -3
- data/lib/fog/google/models/sql/tiers.rb +3 -3
- data/lib/fog/google/monitoring.rb +8 -8
- data/lib/fog/google/requests/monitoring/list_metric_descriptors.rb +131 -131
- data/lib/fog/google/requests/monitoring/list_timeseries.rb +32 -32
- data/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb +50 -50
- data/lib/fog/google/requests/sql/clone_instance.rb +41 -41
- data/lib/fog/google/requests/sql/delete_instance.rb +26 -26
- data/lib/fog/google/requests/sql/delete_ssl_cert.rb +27 -27
- data/lib/fog/google/requests/sql/export_instance.rb +22 -22
- data/lib/fog/google/requests/sql/get_backup_run.rb +5 -5
- data/lib/fog/google/requests/sql/get_instance.rb +12 -12
- data/lib/fog/google/requests/sql/get_operation.rb +21 -21
- data/lib/fog/google/requests/sql/get_ssl_cert.rb +21 -21
- data/lib/fog/google/requests/sql/import_instance.rb +21 -21
- data/lib/fog/google/requests/sql/insert_instance.rb +76 -78
- data/lib/fog/google/requests/sql/insert_ssl_cert.rb +33 -33
- data/lib/fog/google/requests/sql/list_backup_runs.rb +4 -4
- data/lib/fog/google/requests/sql/list_flags.rb +84 -84
- data/lib/fog/google/requests/sql/list_instances.rb +3 -3
- data/lib/fog/google/requests/sql/list_operations.rb +13 -13
- data/lib/fog/google/requests/sql/list_ssl_certs.rb +13 -13
- data/lib/fog/google/requests/sql/list_tiers.rb +39 -39
- data/lib/fog/google/requests/sql/reset_instance_ssl_config.rb +16 -16
- data/lib/fog/google/requests/sql/restart_instance.rb +16 -16
- data/lib/fog/google/requests/sql/restore_instance_backup.rb +5 -5
- data/lib/fog/google/requests/sql/set_instance_root_password.rb +20 -20
- data/lib/fog/google/requests/sql/update_instance.rb +52 -52
- data/lib/fog/google/sql.rb +7 -7
- data/lib/fog/google/version.rb +1 -1
- data/lib/fog/parsers/storage/google.rb +15 -0
- data/lib/fog/{google/parsers/storage → parsers/storage/google}/access_control_list.rb +13 -13
- data/lib/fog/{google/parsers/storage → parsers/storage/google}/copy_object.rb +3 -3
- data/lib/fog/parsers/storage/google/get_bucket.rb +58 -0
- data/lib/fog/parsers/storage/google/get_bucket_logging.rb +36 -0
- data/lib/fog/parsers/storage/google/get_bucket_object_versions.rb +84 -0
- data/lib/fog/{google/parsers/storage → parsers/storage/google}/get_bucket_versioning.rb +3 -3
- data/lib/fog/{google/parsers/storage → parsers/storage/google}/get_request_payment.rb +1 -1
- data/lib/fog/{google/parsers/storage → parsers/storage/google}/get_service.rb +8 -8
- data/lib/fog/storage/google.rb +20 -0
- data/lib/fog/storage/google_json.rb +146 -0
- data/lib/fog/storage/google_json/models/directories.rb +26 -0
- data/lib/fog/storage/google_json/models/directory.rb +65 -0
- data/lib/fog/storage/google_json/models/file.rb +148 -0
- data/lib/fog/storage/google_json/models/files.rb +89 -0
- data/lib/fog/storage/google_json/requests/copy_object.rb +66 -0
- data/lib/fog/storage/google_json/requests/delete_bucket.rb +42 -0
- data/lib/fog/{google/requests/storage → storage/google_json/requests}/delete_object.rb +12 -12
- data/lib/fog/storage/google_json/requests/get_bucket.rb +86 -0
- data/lib/fog/{google/requests/storage → storage/google_json/requests}/get_bucket_acl.rb +12 -17
- data/lib/fog/storage/google_json/requests/get_object.rb +98 -0
- data/lib/fog/storage/google_json/requests/get_object_acl.rb +59 -0
- data/lib/fog/storage/google_json/requests/get_object_http_url.rb +40 -0
- data/lib/fog/storage/google_json/requests/get_object_https_url.rb +41 -0
- data/lib/fog/storage/google_json/requests/get_object_torrent.rb +13 -0
- data/lib/fog/storage/google_json/requests/get_object_url.rb +22 -0
- data/lib/fog/storage/google_json/requests/get_service.rb +54 -0
- data/lib/fog/storage/google_json/requests/head_object.rb +54 -0
- data/lib/fog/storage/google_json/requests/put_bucket.rb +68 -0
- data/lib/fog/storage/google_json/requests/put_bucket_acl.rb +34 -0
- data/lib/fog/storage/google_json/requests/put_object.rb +118 -0
- data/lib/fog/storage/google_json/requests/put_object_acl.rb +31 -0
- data/lib/fog/storage/google_json/requests/put_object_url.rb +45 -0
- data/lib/fog/{google/storage.rb → storage/google_xml.rb} +49 -53
- data/lib/fog/storage/google_xml/models/directories.rb +34 -0
- data/lib/fog/{google/models/storage → storage/google_xml/models}/directory.rb +13 -21
- data/lib/fog/{google/models/storage → storage/google_xml/models}/file.rb +34 -46
- data/lib/fog/{google/models/storage → storage/google_xml/models}/files.rb +21 -30
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/copy_object.rb +15 -21
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/delete_bucket.rb +10 -12
- data/lib/fog/storage/google_xml/requests/delete_object.rb +44 -0
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_bucket.rb +33 -43
- data/lib/fog/storage/google_xml/requests/get_bucket_acl.rb +53 -0
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object.rb +25 -37
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_acl.rb +16 -24
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_http_url.rb +8 -12
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_https_url.rb +8 -12
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_torrent.rb +10 -16
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_object_url.rb +1 -1
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/get_service.rb +13 -17
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/head_object.rb +14 -20
- data/lib/fog/storage/google_xml/requests/put_bucket.rb +71 -0
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/put_bucket_acl.rb +12 -14
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/put_object.rb +23 -27
- data/lib/fog/{google/requests/storage → storage/google_xml/requests}/put_object_acl.rb +12 -14
- data/lib/fog/storage/google_xml/requests/put_object_url.rb +42 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/console.rake +12 -0
- data/tasks/lint.rake +3 -0
- data/tasks/smoke.rake +15 -0
- data/tasks/test.rake +13 -0
- data/test/helpers/integration_test_helper.rb +3 -3
- data/test/helpers/test_collection.rb +1 -1
- data/test/helpers/test_helper.rb +8 -8
- data/test/integration/compute/test_servers.rb +1 -1
- data/test/integration/factories/backend_services_factory.rb +2 -2
- data/test/integration/factories/collection_factory.rb +4 -4
- data/test/integration/factories/disks_factory.rb +3 -3
- data/test/integration/factories/forwarding_rules_factory.rb +3 -4
- data/test/integration/factories/global_forwarding_rules_factory.rb +2 -2
- data/test/integration/factories/http_health_checks_factory.rb +1 -1
- data/test/integration/factories/images_factory.rb +2 -2
- data/test/integration/factories/servers_factory.rb +4 -4
- data/test/integration/factories/target_http_proxies_factory.rb +2 -2
- data/test/integration/factories/target_instances_factory.rb +3 -3
- data/test/integration/factories/target_pools_factory.rb +4 -4
- data/test/integration/factories/url_maps_factory.rb +2 -2
- data/test/integration/storage/test_buckets.rb +56 -0
- data/test/integration/storage/test_directories.rb +60 -0
- data/test/integration/storage/test_files.rb +132 -0
- data/test/integration/storage/test_objects.rb +111 -0
- data/test/integration/test_authentication.rb +14 -10
- data/tests/helper.rb +40 -42
- data/tests/helpers/collection_helper.rb +26 -37
- data/tests/helpers/compute/flavors_helper.rb +4 -8
- data/tests/helpers/compute/server_helper.rb +1 -5
- data/tests/helpers/compute/servers_helper.rb +0 -2
- data/tests/helpers/formats_helper.rb +12 -12
- data/tests/helpers/formats_helper_tests.rb +43 -47
- data/tests/helpers/mock_helper.rb +6 -8
- data/tests/helpers/model_helper.rb +6 -10
- data/tests/helpers/schema_validator_tests.rb +41 -47
- data/tests/helpers/succeeds_helper.rb +1 -1
- data/tests/models/dns/change_tests.rb +8 -10
- data/tests/models/dns/changes_tests.rb +8 -12
- data/tests/models/dns/projects_tests.rb +2 -5
- data/tests/models/dns/record_tests.rb +9 -10
- data/tests/models/dns/records_tests.rb +9 -13
- data/tests/models/dns/zone_tests.rb +6 -6
- data/tests/models/dns/zones_tests.rb +5 -5
- data/tests/models/monitoring/metric_descriptors_tests.rb +2 -5
- data/tests/models/monitoring/timeseries_collection_tests.rb +3 -6
- data/tests/models/monitoring/timeseries_descriptors_tests.rb +3 -6
- data/tests/models/sql/flags_tests.rb +2 -5
- data/tests/models/sql/instance_tests.rb +4 -7
- data/tests/models/sql/instances_tests.rb +4 -9
- data/tests/models/sql/operation_tests.rb +3 -6
- data/tests/models/sql/operations_tests.rb +4 -9
- data/tests/models/sql/ssl_cert_tests.rb +3 -6
- data/tests/models/sql/ssl_certs_tests.rb +4 -9
- data/tests/models/sql/tiers_tests.rb +2 -5
- data/tests/requests/compute/backend_service_tests.rb +43 -47
- data/tests/requests/compute/disk_tests.rb +42 -46
- data/tests/requests/compute/disk_type_tests.rb +18 -21
- data/tests/requests/compute/firewall_tests.rb +42 -45
- data/tests/requests/compute/forwarding_rules_tests.rb +44 -48
- data/tests/requests/compute/global_forwarding_rules_tests.rb +44 -48
- data/tests/requests/compute/http_health_checks_tests.rb +44 -48
- data/tests/requests/compute/image_tests.rb +41 -45
- data/tests/requests/compute/network_tests.rb +38 -41
- data/tests/requests/compute/operation_tests.rb +2 -3
- data/tests/requests/compute/region_tests.rb +18 -18
- data/tests/requests/compute/server_tests.rb +45 -47
- data/tests/requests/compute/target_http_proxies_test.rb +39 -43
- data/tests/requests/compute/target_instances_tests.rb +43 -47
- data/tests/requests/compute/target_pools_tests.rb +43 -47
- data/tests/requests/compute/url_maps_tests.rb +42 -46
- data/tests/requests/compute/zone_tests.rb +15 -19
- data/tests/requests/dns/change_tests.rb +18 -22
- data/tests/requests/dns/managed_zone_tests.rb +27 -30
- data/tests/requests/dns/project_tests.rb +13 -16
- data/tests/requests/dns/record_tests.rb +15 -18
- data/tests/requests/monitoring/metric_descriptor_tests.rb +9 -12
- data/tests/requests/monitoring/timeseries_collection_tests.rb +9 -12
- data/tests/requests/monitoring/timeseries_descriptor_tests.rb +10 -13
- data/tests/requests/sql/flag_tests.rb +11 -14
- data/tests/requests/sql/instance_tests.rb +36 -39
- data/tests/requests/sql/operation_tests.rb +17 -20
- data/tests/requests/sql/ssl_cert_tests.rb +21 -24
- data/tests/requests/sql/tier_tests.rb +9 -12
- data/tests/requests/storage/bucket_tests.rb +30 -36
- data/tests/requests/storage/object_tests.rb +21 -27
- metadata +309 -235
- data/examples/eric-fail.rb +0 -36
- data/examples/image_all.rb +0 -6
- data/examples/launch_micro_instance.rb +0 -29
- data/gemfiles/Gemfile.2.0.0+ +0 -6
- data/gemfiles/Gemfile.2.0.0- +0 -10
- data/lib/fog/google/models/compute/flavor.rb +0 -33
- data/lib/fog/google/models/compute/global_forwarding_rule.rb +0 -86
- data/lib/fog/google/models/compute/http_health_check.rb +0 -84
- data/lib/fog/google/models/compute/snapshot.rb +0 -48
- data/lib/fog/google/models/compute/zone.rb +0 -23
- data/lib/fog/google/models/storage/directories.rb +0 -39
- data/lib/fog/google/parsers/storage/get_bucket.rb +0 -58
- data/lib/fog/google/parsers/storage/get_bucket_logging.rb +0 -36
- data/lib/fog/google/parsers/storage/get_bucket_object_versions.rb +0 -84
- data/lib/fog/google/requests/compute/attach_disk.rb +0 -34
- data/lib/fog/google/requests/compute/get_disk.rb +0 -52
- data/lib/fog/google/requests/compute/get_disk_type.rb +0 -42
- data/lib/fog/google/requests/compute/get_forwarding_rule.rb +0 -46
- data/lib/fog/google/requests/compute/get_global_forwarding_rule.rb +0 -32
- data/lib/fog/google/requests/compute/get_http_health_check.rb +0 -39
- data/lib/fog/google/requests/compute/get_machine_type.rb +0 -43
- data/lib/fog/google/requests/compute/get_server.rb +0 -75
- data/lib/fog/google/requests/compute/get_target_instance.rb +0 -32
- data/lib/fog/google/requests/compute/list_aggregated_disk_types.rb +0 -40
- data/lib/fog/google/requests/compute/list_aggregated_disks.rb +0 -40
- data/lib/fog/google/requests/compute/list_aggregated_servers.rb +0 -40
- data/lib/fog/google/requests/compute/list_backend_services.rb +0 -29
- data/lib/fog/google/requests/compute/list_disk_types.rb +0 -46
- data/lib/fog/google/requests/compute/list_disks.rb +0 -29
- data/lib/fog/google/requests/compute/list_forwarding_rules.rb +0 -29
- data/lib/fog/google/requests/compute/list_global_forwarding_rules.rb +0 -30
- data/lib/fog/google/requests/compute/list_http_health_checks.rb +0 -29
- data/lib/fog/google/requests/compute/list_images.rb +0 -29
- data/lib/fog/google/requests/compute/list_regions.rb +0 -85
- data/lib/fog/google/requests/compute/list_servers.rb +0 -31
- data/lib/fog/google/requests/compute/list_target_http_proxies.rb +0 -30
- data/lib/fog/google/requests/compute/list_target_instances.rb +0 -30
- data/lib/fog/google/requests/compute/list_target_pools.rb +0 -29
- data/lib/fog/google/requests/compute/list_url_maps.rb +0 -29
- data/lib/fog/google/requests/compute/list_zones.rb +0 -28
- data/lib/fog/google/requests/dns/create_managed_zone.rb +0 -82
- data/lib/fog/google/requests/storage/put_bucket.rb +0 -71
- data/lib/fog/google/requests/storage/put_object_url.rb +0 -50
@@ -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 =>
|
13
|
+
attribute :creation_timestamp, :aliases => "creationTimestamp"
|
16
14
|
attribute :deprecated
|
17
15
|
attribute :description
|
18
16
|
attribute :quotas
|
19
|
-
attribute :self_link, :aliases =>
|
17
|
+
attribute :self_link, :aliases => "selfLink"
|
20
18
|
attribute :status
|
21
19
|
attribute :zones
|
22
20
|
|
23
|
-
DOWN_STATE =
|
24
|
-
UP_STATE =
|
21
|
+
DOWN_STATE = "DOWN"
|
22
|
+
UP_STATE = "UP"
|
25
23
|
|
26
24
|
def up?
|
27
|
-
|
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[
|
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 =>
|
13
|
+
attribute :creation_timestamp, :aliases => "creationTimestamp"
|
16
14
|
attribute :description
|
17
|
-
attribute :dest_range, :aliases =>
|
15
|
+
attribute :dest_range, :aliases => "destRange"
|
18
16
|
attribute :network
|
19
|
-
attribute :next_hop_gateway, :aliases =>
|
20
|
-
attribute :next_hop_instance, :aliases =>
|
21
|
-
attribute :next_hop_ip, :aliases =>
|
22
|
-
attribute :next_hop_network, :aliases =>
|
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 =>
|
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,
|
32
|
-
operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body[
|
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[
|
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[
|
9
|
+
load(data["items"] || [])
|
13
10
|
end
|
14
11
|
|
15
12
|
def get(identity)
|
@@ -1,5 +1,4 @@
|
|
1
|
-
require
|
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 =>
|
13
|
-
attribute :creation_timestamp, :aliases =>
|
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 =>
|
15
|
+
attribute :machine_type, :aliases => "machineType"
|
17
16
|
attribute :metadata
|
18
|
-
attribute :network_interfaces, :aliases =>
|
17
|
+
attribute :network_interfaces, :aliases => "networkInterfaces"
|
19
18
|
attribute :scheduling
|
20
|
-
attribute :self_link, :aliases =>
|
21
|
-
attribute :service_accounts, :aliases =>
|
22
|
-
attribute :state, :aliases =>
|
23
|
-
attribute :status_message, :aliases =>
|
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 =>
|
30
|
-
attribute :external_ip, :aliases =>
|
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
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
def image_name=(
|
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[
|
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=(
|
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[
|
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(
|
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
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
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
|
118
|
-
ip =
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
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[
|
187
|
-
Fog::Compute::Google::Operations.new(:service => service).get(data.body[
|
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[
|
194
|
-
Fog::Compute::Google::Operations.new(:service => service).get(data.body[
|
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
|
-
|
194
|
+
state == RUNNING
|
199
195
|
end
|
200
196
|
|
201
197
|
def zone_name
|
202
|
-
zone.nil? ? nil : zone.split(
|
198
|
+
zone.nil? ? nil : zone.split("/")[-1]
|
203
199
|
end
|
204
200
|
|
205
|
-
def add_ssh_key
|
206
|
-
|
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
|
-
|
213
|
-
self.metadata["sshKeys"] = ""
|
214
|
-
end
|
206
|
+
metadata["sshKeys"] = "" unless metadata["sshKeys"]
|
215
207
|
|
216
|
-
|
217
|
-
self.metadata["sshKeys"] += "\n"
|
218
|
-
end
|
208
|
+
metadata["sshKeys"] += "\n" unless metadata["sshKeys"].empty?
|
219
209
|
|
220
|
-
|
210
|
+
metadata["sshKeys"] += "#{username}:#{key.strip}"
|
221
211
|
|
222
|
-
|
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
|
-
|
232
|
+
scope_array_finalized
|
244
233
|
end
|
245
234
|
|
246
235
|
def reload
|
247
|
-
data = service.get_server(
|
248
|
-
|
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
|
-
|
258
|
-
raise ArgumentError.new "#{
|
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
|
-
|
250
|
+
add_ssh_key(username, public_key) if public_key
|
262
251
|
|
263
252
|
options = {
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
}.delete_if {|
|
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[
|
268
|
+
options["serviceAccounts"] = [{
|
280
269
|
"kind" => "compute#serviceAccount",
|
281
270
|
"email" => "default",
|
282
|
-
"scopes" =>
|
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[
|
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
|