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
@@ -0,0 +1,82 @@
|
|
1
|
+
require "date"
|
2
|
+
module Fog
|
3
|
+
module DNS
|
4
|
+
class Google
|
5
|
+
##
|
6
|
+
# Creates a new Managed Zone.
|
7
|
+
#
|
8
|
+
# @see https://developers.google.com/cloud-dns/api/v1/managedZones/create
|
9
|
+
class Real
|
10
|
+
def create_managed_zone(name, dns_name, description)
|
11
|
+
api_method = @dns.managed_zones.create
|
12
|
+
parameters = {
|
13
|
+
"project" => @project
|
14
|
+
}
|
15
|
+
|
16
|
+
body_object = {
|
17
|
+
"name" => name,
|
18
|
+
"dnsName" => dns_name,
|
19
|
+
"description" => description
|
20
|
+
}
|
21
|
+
|
22
|
+
request(api_method, parameters, body_object)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Mock
|
27
|
+
def create_managed_zone(name, dns_name, description)
|
28
|
+
id = Fog::Mock.random_numbers(19).to_s
|
29
|
+
data = {
|
30
|
+
"kind" => 'dns#managedZone',
|
31
|
+
"id" => id,
|
32
|
+
"creationTime" => DateTime.now.strftime("%FT%T.%LZ"),
|
33
|
+
"name" => name,
|
34
|
+
"dnsName" => dns_name,
|
35
|
+
"description" => description,
|
36
|
+
"nameServers" => [
|
37
|
+
"ns-cloud-e1.googledomains.com.",
|
38
|
+
"ns-cloud-e2.googledomains.com.",
|
39
|
+
"ns-cloud-e3.googledomains.com.",
|
40
|
+
"ns-cloud-e4.googledomains.com."
|
41
|
+
]
|
42
|
+
}
|
43
|
+
self.data[:managed_zones][id] = data
|
44
|
+
self.data[:resource_record_sets][id] = [
|
45
|
+
{
|
46
|
+
"kind" => 'dns#resourceRecordSet',
|
47
|
+
"name" => dns_name,
|
48
|
+
"type" => "NS",
|
49
|
+
"ttl" => 21_600,
|
50
|
+
"rrdatas" => [
|
51
|
+
"ns-cloud-c1.googledomains.com.",
|
52
|
+
"ns-cloud-c2.googledomains.com.",
|
53
|
+
"ns-cloud-c3.googledomains.com.",
|
54
|
+
"ns-cloud-c4.googledomains.com."
|
55
|
+
]
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"kind" => 'dns#resourceRecordSet',
|
59
|
+
"name" => dns_name,
|
60
|
+
"type" => "SOA",
|
61
|
+
"ttl" => 21_600,
|
62
|
+
"rrdatas" => [
|
63
|
+
"ns-cloud-c1.googledomains.com. dns-admin.google.com. 0 21600 3600 1209600 300"
|
64
|
+
]
|
65
|
+
}
|
66
|
+
]
|
67
|
+
self.data[:changes][id] = [
|
68
|
+
{
|
69
|
+
"kind" => 'dns#change',
|
70
|
+
"id" => "0",
|
71
|
+
"startTime" => DateTime.now.strftime("%FT%T.%LZ"),
|
72
|
+
"status" => "done",
|
73
|
+
"additions" => self.data[:resource_record_sets][id]
|
74
|
+
}
|
75
|
+
]
|
76
|
+
|
77
|
+
build_excon_response(data)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -9,8 +9,8 @@ module Fog
|
|
9
9
|
def delete_managed_zone(name_or_id)
|
10
10
|
api_method = @dns.managed_zones.delete
|
11
11
|
parameters = {
|
12
|
-
|
13
|
-
|
12
|
+
"project" => @project,
|
13
|
+
"managedZone" => name_or_id
|
14
14
|
}
|
15
15
|
|
16
16
|
request(api_method, parameters)
|
@@ -19,10 +19,10 @@ module Fog
|
|
19
19
|
|
20
20
|
class Mock
|
21
21
|
def delete_managed_zone(name_or_id)
|
22
|
-
if
|
23
|
-
|
24
|
-
elsif zone =
|
25
|
-
|
22
|
+
if data[:managed_zones].key?(name_or_id)
|
23
|
+
data[:managed_zones].delete(name_or_id)
|
24
|
+
elsif zone = data[:managed_zones].values.detect { |z| z["name"] = name_or_id }
|
25
|
+
data[:managed_zones].delete(zone["id"])
|
26
26
|
else
|
27
27
|
raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{name_or_id}' does not exist."
|
28
28
|
end
|
@@ -9,9 +9,9 @@ module Fog
|
|
9
9
|
def get_change(zone_name_or_id, identity)
|
10
10
|
api_method = @dns.changes.get
|
11
11
|
parameters = {
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
"project" => @project,
|
13
|
+
"managedZone" => zone_name_or_id,
|
14
|
+
"changeId" => identity
|
15
15
|
}
|
16
16
|
|
17
17
|
request(api_method, parameters)
|
@@ -20,17 +20,17 @@ module Fog
|
|
20
20
|
|
21
21
|
class Mock
|
22
22
|
def get_change(zone_name_or_id, identity)
|
23
|
-
if
|
24
|
-
zone =
|
23
|
+
if data[:managed_zones].key?(zone_name_or_id)
|
24
|
+
zone = data[:managed_zones][zone_name_or_id]
|
25
25
|
else
|
26
|
-
zone =
|
26
|
+
zone = data[:managed_zones].values.detect { |z| z["name"] = zone_name_or_id }
|
27
27
|
end
|
28
28
|
|
29
29
|
unless zone
|
30
30
|
raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist."
|
31
31
|
end
|
32
32
|
|
33
|
-
unless data = self.data[:changes][zone[
|
33
|
+
unless data = self.data[:changes][zone["id"]].detect { |c| c["id"] == identity }
|
34
34
|
raise Fog::Errors::NotFound, "The 'parameters.changeId' resource named '#{identity}' does not exist."
|
35
35
|
end
|
36
36
|
|
@@ -9,8 +9,8 @@ module Fog
|
|
9
9
|
def get_managed_zone(name_or_id)
|
10
10
|
api_method = @dns.managed_zones.get
|
11
11
|
parameters = {
|
12
|
-
|
13
|
-
|
12
|
+
"project" => @project,
|
13
|
+
"managedZone" => name_or_id
|
14
14
|
}
|
15
15
|
|
16
16
|
request(api_method, parameters)
|
@@ -19,10 +19,10 @@ module Fog
|
|
19
19
|
|
20
20
|
class Mock
|
21
21
|
def get_managed_zone(name_or_id)
|
22
|
-
if
|
22
|
+
if data[:managed_zones].key?(name_or_id)
|
23
23
|
data = self.data[:managed_zones][name_or_id]
|
24
24
|
else
|
25
|
-
data = self.data[:managed_zones].values.
|
25
|
+
data = self.data[:managed_zones].values.detect { |zone| zone["name"] = name_or_id }
|
26
26
|
end
|
27
27
|
|
28
28
|
unless data
|
@@ -10,7 +10,7 @@ module Fog
|
|
10
10
|
def get_project(identity)
|
11
11
|
api_method = @dns.projects.get
|
12
12
|
parameters = {
|
13
|
-
:project => identity
|
13
|
+
:project => identity
|
14
14
|
}
|
15
15
|
|
16
16
|
request(api_method, parameters)
|
@@ -20,17 +20,17 @@ module Fog
|
|
20
20
|
class Mock
|
21
21
|
def get_project(identity)
|
22
22
|
body = {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
23
|
+
"kind" => 'dns#project',
|
24
|
+
"number" => Fog::Mock.random_numbers(12).to_s,
|
25
|
+
"id" => identity,
|
26
|
+
"quota" => {
|
27
|
+
"kind" => 'dns#quota',
|
28
|
+
"managedZones" => 100,
|
29
|
+
"rrsetsPerManagedZone" => 10_000,
|
30
|
+
"rrsetAdditionsPerChange" => 100,
|
31
|
+
"rrsetDeletionsPerChange" => 100,
|
32
|
+
"totalRrdataSizePerChange" => 10_000,
|
33
|
+
"resourceRecordsPerRrset" => 20
|
34
34
|
}
|
35
35
|
}
|
36
36
|
|
@@ -9,8 +9,8 @@ module Fog
|
|
9
9
|
def list_changes(zone_name_or_id)
|
10
10
|
api_method = @dns.changes.list
|
11
11
|
parameters = {
|
12
|
-
|
13
|
-
|
12
|
+
"project" => @project,
|
13
|
+
"managedZone" => zone_name_or_id
|
14
14
|
}
|
15
15
|
|
16
16
|
request(api_method, parameters)
|
@@ -19,10 +19,10 @@ module Fog
|
|
19
19
|
|
20
20
|
class Mock
|
21
21
|
def list_changes(zone_name_or_id)
|
22
|
-
if
|
23
|
-
zone =
|
22
|
+
if data[:managed_zones].key?(zone_name_or_id)
|
23
|
+
zone = data[:managed_zones][zone_name_or_id]
|
24
24
|
else
|
25
|
-
zone =
|
25
|
+
zone = data[:managed_zones].values.detect { |z| z["name"] == zone_name_or_id }
|
26
26
|
end
|
27
27
|
|
28
28
|
unless zone
|
@@ -30,8 +30,8 @@ module Fog
|
|
30
30
|
end
|
31
31
|
|
32
32
|
body = {
|
33
|
-
|
34
|
-
|
33
|
+
"kind" => 'dns#changesListResponse',
|
34
|
+
"changes" => data[:changes][zone["id"]]
|
35
35
|
}
|
36
36
|
build_excon_response(body)
|
37
37
|
end
|
@@ -6,10 +6,10 @@ module Fog
|
|
6
6
|
#
|
7
7
|
# @see hhttps://developers.google.com/cloud-dns/api/v1/managedZones/list
|
8
8
|
class Real
|
9
|
-
def list_managed_zones
|
9
|
+
def list_managed_zones
|
10
10
|
api_method = @dns.managed_zones.list
|
11
11
|
parameters = {
|
12
|
-
|
12
|
+
"project" => @project
|
13
13
|
}
|
14
14
|
|
15
15
|
request(api_method, parameters)
|
@@ -17,10 +17,10 @@ module Fog
|
|
17
17
|
end
|
18
18
|
|
19
19
|
class Mock
|
20
|
-
def list_managed_zones
|
20
|
+
def list_managed_zones
|
21
21
|
body = {
|
22
|
-
|
23
|
-
|
22
|
+
"kind" => 'dns#managedZonesListResponse',
|
23
|
+
"managedZones" => data[:managed_zones].values
|
24
24
|
}
|
25
25
|
|
26
26
|
build_excon_response(body)
|
@@ -9,11 +9,11 @@ module Fog
|
|
9
9
|
def list_resource_record_sets(zone_name_or_id, options = {})
|
10
10
|
api_method = @dns.resource_record_sets.list
|
11
11
|
parameters = {
|
12
|
-
|
13
|
-
|
12
|
+
"project" => @project,
|
13
|
+
"managedZone" => zone_name_or_id
|
14
14
|
}
|
15
15
|
|
16
|
-
[:name, :type].reject{ |o| options[o].nil? }.each do |key|
|
16
|
+
[:name, :type].reject { |o| options[o].nil? }.each do |key|
|
17
17
|
parameters[key] = options[key]
|
18
18
|
end
|
19
19
|
|
@@ -23,24 +23,24 @@ module Fog
|
|
23
23
|
|
24
24
|
class Mock
|
25
25
|
def list_resource_record_sets(zone_name_or_id, options = {})
|
26
|
-
if
|
27
|
-
zone =
|
26
|
+
if data[:managed_zones].key?(zone_name_or_id)
|
27
|
+
zone = data[:managed_zones][zone_name_or_id]
|
28
28
|
else
|
29
|
-
zone =
|
29
|
+
zone = data[:managed_zones].values.detect { |z| z["name"] = zone_name_or_id }
|
30
30
|
end
|
31
31
|
|
32
32
|
unless zone
|
33
33
|
raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist."
|
34
34
|
end
|
35
35
|
|
36
|
-
rrsets =
|
37
|
-
if options.
|
38
|
-
rrsets.delete_if { |rrset| rrset[
|
36
|
+
rrsets = data[:resource_record_sets][zone["id"]]
|
37
|
+
if options.key?(:name) && options.key?(:type)
|
38
|
+
rrsets.delete_if { |rrset| rrset["name"] != options[:name] || rrset["type"] != options[:type] }
|
39
39
|
end
|
40
40
|
|
41
41
|
body = {
|
42
|
-
|
43
|
-
|
42
|
+
"kind" => 'dns#resourceRecordSetsListResponse',
|
43
|
+
"rrsets" => rrsets
|
44
44
|
}
|
45
45
|
build_excon_response(body)
|
46
46
|
end
|
data/lib/fog/google.rb
CHANGED
@@ -4,47 +4,35 @@ require "fog/xml"
|
|
4
4
|
require "fog/google/version"
|
5
5
|
|
6
6
|
module Fog
|
7
|
-
module Compute
|
8
|
-
autoload :Google, "fog/google/compute"
|
9
|
-
end
|
10
|
-
|
11
|
-
module DNS
|
12
|
-
autoload :Google, "fog/google/dns"
|
13
|
-
end
|
14
|
-
|
15
|
-
module Storage
|
16
|
-
autoload :Google, "fog/google/storage"
|
17
|
-
end
|
18
|
-
|
19
7
|
module Google
|
20
8
|
autoload :Monitoring, "fog/google/monitoring"
|
21
9
|
autoload :SQL, "fog/google/sql"
|
22
10
|
|
23
11
|
extend Fog::Provider
|
24
12
|
|
25
|
-
service(:compute,
|
26
|
-
service(:dns,
|
27
|
-
service(:monitoring,
|
28
|
-
service(:storage,
|
29
|
-
service(:sql,
|
13
|
+
service(:compute, "Compute")
|
14
|
+
service(:dns, "DNS")
|
15
|
+
service(:monitoring, "Monitoring")
|
16
|
+
service(:storage, "Storage")
|
17
|
+
service(:sql, "SQL")
|
30
18
|
|
31
19
|
# CGI.escape, but without special treatment on spaces
|
32
|
-
def self.escape(str,extra_exclude_chars =
|
20
|
+
def self.escape(str, extra_exclude_chars = "")
|
33
21
|
# '-' is a special character inside a regex class so it must be first or last.
|
34
22
|
# Add extra excludes before the final '-' so it always remains trailing, otherwise
|
35
23
|
# an unwanted range is created by mistake.
|
36
24
|
str.gsub(/([^a-zA-Z0-9_.#{extra_exclude_chars}-]+)/) do
|
37
|
-
|
25
|
+
"%" + Regexp.last_match(1).unpack("H2" * Regexp.last_match(1).bytesize).join("%").upcase
|
38
26
|
end
|
39
27
|
end
|
40
|
-
|
28
|
+
|
41
29
|
class Mock
|
42
30
|
def self.etag
|
43
31
|
hex(32)
|
44
32
|
end
|
45
33
|
|
46
34
|
def self.hex(length)
|
47
|
-
max = (
|
35
|
+
max = ("f" * length).to_i(16)
|
48
36
|
rand(max).to_s(16)
|
49
37
|
end
|
50
38
|
end
|
@@ -62,7 +50,7 @@ module Fog
|
|
62
50
|
def shared_initialize(project, api_version, base_url)
|
63
51
|
@project = project
|
64
52
|
@api_version = api_version
|
65
|
-
@api_url = base_url + api_version +
|
53
|
+
@api_url = base_url + api_version + "/projects/"
|
66
54
|
end
|
67
55
|
|
68
56
|
##
|
@@ -83,9 +71,9 @@ module Fog
|
|
83
71
|
def initialize_google_client(options)
|
84
72
|
# NOTE: loaded here to avoid requiring this as a core Fog dependency
|
85
73
|
begin
|
86
|
-
require
|
74
|
+
require "google/api_client"
|
87
75
|
rescue LoadError => error
|
88
|
-
Fog::Logger.warning(
|
76
|
+
Fog::Logger.warning("Please install the google-api-client gem before using this provider")
|
89
77
|
raise error
|
90
78
|
end
|
91
79
|
|
@@ -98,20 +86,20 @@ module Fog
|
|
98
86
|
|
99
87
|
# Validate required arguments
|
100
88
|
unless options[:google_client_email]
|
101
|
-
raise ArgumentError.new(
|
89
|
+
raise ArgumentError.new("Missing required arguments: google_client_email")
|
102
90
|
end
|
103
91
|
|
104
92
|
unless options[:google_api_scope_url]
|
105
|
-
raise ArgumentError.new(
|
93
|
+
raise ArgumentError.new("Missing required arguments: google_api_scope_url")
|
106
94
|
end
|
107
95
|
|
108
96
|
# Create a new Google API Client
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
97
|
+
new_pk12_google_client(
|
98
|
+
options[:google_client_email],
|
99
|
+
signing_key,
|
100
|
+
options[:google_api_scope_url],
|
101
|
+
options[:app_name],
|
102
|
+
options[:app_version]
|
115
103
|
)
|
116
104
|
end
|
117
105
|
|
@@ -122,18 +110,18 @@ module Fog
|
|
122
110
|
if options[:google_json_key_location] || options[:google_json_key_string]
|
123
111
|
if options[:google_json_key_location]
|
124
112
|
json_key_location = File.expand_path(options[:google_json_key_location])
|
125
|
-
json_key = File.open(json_key_location,
|
113
|
+
json_key = File.open(json_key_location, "r", &:read)
|
126
114
|
else
|
127
115
|
json_key = options[:google_json_key_string]
|
128
116
|
end
|
129
117
|
|
130
118
|
json_key_hash = Fog::JSON.decode(json_key)
|
131
|
-
unless json_key_hash.
|
132
|
-
raise ArgumentError.new(
|
119
|
+
unless json_key_hash.key?("client_email") || json_key_hash.key?("private_key")
|
120
|
+
raise ArgumentError.new("Invalid Google JSON key")
|
133
121
|
end
|
134
122
|
|
135
|
-
options[:google_client_email] = json_key_hash[
|
136
|
-
::Google::APIClient::KeyUtils.load_from_pem(json_key_hash[
|
123
|
+
options[:google_client_email] = json_key_hash["client_email"]
|
124
|
+
::Google::APIClient::KeyUtils.load_from_pem(json_key_hash["private_key"], "notasecret")
|
137
125
|
elsif options[:google_key_location] || options[:google_key_string]
|
138
126
|
if options[:google_key_location]
|
139
127
|
google_key = File.expand_path(options[:google_key_location])
|
@@ -141,10 +129,10 @@ module Fog
|
|
141
129
|
google_key = options[:google_key_string]
|
142
130
|
end
|
143
131
|
|
144
|
-
::Google::APIClient::KeyUtils.load_from_pkcs12(google_key,
|
132
|
+
::Google::APIClient::KeyUtils.load_from_pkcs12(google_key, "notasecret")
|
145
133
|
else
|
146
|
-
raise ArgumentError.new(
|
147
|
-
|
134
|
+
raise ArgumentError.new("Missing required arguments: google_key_location, google_key_string, " \
|
135
|
+
"google_json_key_location or google_json_key_string")
|
148
136
|
end
|
149
137
|
end
|
150
138
|
|
@@ -158,23 +146,21 @@ module Fog
|
|
158
146
|
# @param [String] app_version The app version to set in the user agent
|
159
147
|
# @return [Google::APIClient] Google API Client
|
160
148
|
def new_pk12_google_client(google_client_email, signing_key, google_api_scope_url, app_name = nil, app_version = nil)
|
161
|
-
application_name = app_name.nil? ?
|
149
|
+
application_name = app_name.nil? ? "fog" : "#{app_name}/#{app_version || '0.0.0'} fog"
|
162
150
|
api_client_options = {
|
163
|
-
|
164
|
-
|
151
|
+
:application_name => application_name,
|
152
|
+
:application_version => Fog::Google::VERSION
|
165
153
|
}
|
166
154
|
client = ::Google::APIClient.new(api_client_options)
|
167
155
|
|
168
156
|
client.authorization = Signet::OAuth2::Client.new(
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
:token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
|
177
|
-
}
|
157
|
+
:audience => "https://accounts.google.com/o/oauth2/token",
|
158
|
+
:auth_provider_x509_cert_url => "https://www.googleapis.com/oauth2/v1/certs",
|
159
|
+
:client_x509_cert_url => "https://www.googleapis.com/robot/v1/metadata/x509/#{google_client_email}",
|
160
|
+
:issuer => google_client_email,
|
161
|
+
:scope => google_api_scope_url,
|
162
|
+
:signing_key => signing_key,
|
163
|
+
:token_credential_uri => "https://accounts.google.com/o/oauth2/token"
|
178
164
|
)
|
179
165
|
client.authorization.fetch_access_token!
|
180
166
|
|
@@ -188,15 +174,16 @@ module Fog
|
|
188
174
|
# @param [Hash] parameters The parameters to send to the method
|
189
175
|
# @param [Hash] body_object The body object of the request
|
190
176
|
# @return [Excon::Response] The result from the API
|
191
|
-
def request(api_method, parameters, body_object = nil)
|
177
|
+
def request(api_method, parameters, body_object = nil, media = nil)
|
192
178
|
client_parms = {
|
193
|
-
|
194
|
-
|
179
|
+
:api_method => api_method,
|
180
|
+
:parameters => parameters
|
195
181
|
}
|
196
182
|
# The Google API complains when given null values for enums, so just don't pass it any null fields
|
197
183
|
# XXX It may still balk if we have a nested object, e.g.:
|
198
184
|
# {:a_field => "string", :a_nested_field => { :an_empty_nested_field => nil } }
|
199
|
-
client_parms[:body_object] = body_object.reject { |
|
185
|
+
client_parms[:body_object] = body_object.reject { |_k, v| v.nil? } if body_object
|
186
|
+
client_parms[:media] = media if media
|
200
187
|
|
201
188
|
result = @client.execute(client_parms)
|
202
189
|
|
@@ -211,25 +198,25 @@ module Fog
|
|
211
198
|
# @return [Excon::Response] Excon response
|
212
199
|
def build_excon_response(body, status = 200)
|
213
200
|
response = Excon::Response.new(:body => body, :status => status)
|
214
|
-
if body && body.
|
215
|
-
msg =
|
216
|
-
|
217
|
-
if body[
|
218
|
-
response.status = body[
|
219
|
-
if body[
|
220
|
-
msg = body[
|
221
|
-
elsif body[
|
222
|
-
msg = body[
|
201
|
+
if body && body.key?("error")
|
202
|
+
msg = "Google Cloud did not return an error message"
|
203
|
+
|
204
|
+
if body["error"].is_a?(Hash)
|
205
|
+
response.status = body["error"]["code"]
|
206
|
+
if body["error"].key?("errors")
|
207
|
+
msg = body["error"]["errors"].map { |error| error["message"] }.join(", ")
|
208
|
+
elsif body["error"].key?("message")
|
209
|
+
msg = body["error"]["message"]
|
223
210
|
end
|
224
|
-
elsif body[
|
225
|
-
msg = body[
|
211
|
+
elsif body["error"].is_a?(Array)
|
212
|
+
msg = body["error"].map { |error| error["code"] }.join(", ")
|
226
213
|
end
|
227
214
|
|
228
215
|
case response.status
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
216
|
+
when 404
|
217
|
+
raise Fog::Errors::NotFound.new(msg)
|
218
|
+
else
|
219
|
+
raise Fog::Errors::Error.new(msg)
|
233
220
|
end
|
234
221
|
end
|
235
222
|
|
@@ -237,4 +224,24 @@ module Fog
|
|
237
224
|
end
|
238
225
|
end
|
239
226
|
end
|
227
|
+
|
228
|
+
module Compute
|
229
|
+
autoload :Google, File.expand_path("../compute/google", __FILE__)
|
230
|
+
end
|
231
|
+
|
232
|
+
module DNS
|
233
|
+
autoload :Google, File.expand_path("../dns/google", __FILE__)
|
234
|
+
end
|
235
|
+
|
236
|
+
module Parsers
|
237
|
+
module Storage
|
238
|
+
autoload :Google, File.expand_path("../parsers/storage/google", __FILE__)
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
module Storage
|
243
|
+
autoload :Google, File.expand_path("../storage/google", __FILE__)
|
244
|
+
autoload :GoogleJSON, File.expand_path("../storage/google_json", __FILE__)
|
245
|
+
autoload :GoogleXML, File.expand_path("../storage/google_xml", __FILE__)
|
246
|
+
end
|
240
247
|
end
|