fog 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +3 -12
- data/Rakefile +3 -2
- data/benchs/parse_vs_push.rb +17 -8
- data/bin/fog +2 -2
- data/changelog.txt +123 -0
- data/docs/_layouts/default.html +21 -8
- data/docs/{_posts/2011-01-01-contributing.markdown → about/contributing.markdown} +0 -0
- data/docs/about/getting_started.markdown +83 -0
- data/docs/{_posts/2011-01-01-press.markdown → about/press.markdown} +6 -1
- data/docs/{_posts/2011-01-01-structure.markdown → about/structure.markdown} +0 -0
- data/docs/{_posts/2011-01-01-users.markdown → about/users.markdown} +0 -0
- data/docs/{_posts/2011-01-01-cdn.markdown → cdn/index.markdown} +12 -12
- data/docs/{_posts/2011-01-01-dns.markdown → dns/index.markdown} +18 -18
- data/docs/index.markdown +5 -4
- data/docs/{_posts/2011-01-01-storage.markdown → storage/index.markdown} +59 -21
- data/fog.gemspec +3 -9
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/elb.rb +46 -12
- data/lib/fog/aws/iam.rb +1 -0
- data/lib/fog/aws/models/elb/listener.rb +51 -0
- data/lib/fog/aws/models/elb/listeners.rb +32 -0
- data/lib/fog/aws/models/elb/load_balancer.rb +129 -0
- data/lib/fog/aws/models/elb/load_balancers.rb +28 -0
- data/lib/fog/aws/models/elb/policies.rb +40 -0
- data/lib/fog/aws/models/elb/policy.rb +52 -0
- data/lib/fog/aws/{rds/models → models/rds}/parameter.rb +0 -0
- data/lib/fog/aws/{rds/models → models/rds}/parameter_group.rb +0 -0
- data/lib/fog/aws/{rds/models → models/rds}/parameter_groups.rb +1 -1
- data/lib/fog/aws/{rds/models → models/rds}/parameters.rb +1 -1
- data/lib/fog/aws/{rds/models → models/rds}/security_group.rb +0 -0
- data/lib/fog/aws/{rds/models → models/rds}/security_groups.rb +1 -1
- data/lib/fog/aws/{rds/models → models/rds}/server.rb +0 -0
- data/lib/fog/aws/{rds/models → models/rds}/servers.rb +1 -1
- data/lib/fog/aws/{rds/models → models/rds}/snapshot.rb +0 -0
- data/lib/fog/aws/{rds/models → models/rds}/snapshots.rb +1 -1
- data/lib/fog/aws/parsers/cloud_formation/create_stack.rb +1 -1
- data/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb +3 -3
- data/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb +3 -3
- data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +6 -6
- data/lib/fog/aws/parsers/cloud_formation/get_template.rb +1 -1
- data/lib/fog/aws/parsers/cloud_formation/validate_template.rb +5 -5
- data/lib/fog/aws/parsers/elb/configure_health_check.rb +37 -0
- data/lib/fog/aws/parsers/elb/create_load_balancer.rb +2 -2
- data/lib/fog/aws/parsers/elb/delete_load_balancer.rb +1 -1
- data/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb +2 -2
- data/lib/fog/aws/parsers/elb/describe_instance_health.rb +2 -2
- data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +36 -16
- data/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb +2 -2
- data/lib/fog/aws/parsers/elb/empty.rb +28 -0
- data/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb +2 -2
- data/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb +2 -2
- data/lib/fog/aws/parsers/iam/basic.rb +1 -1
- data/lib/fog/aws/parsers/iam/create_access_key.rb +2 -2
- data/lib/fog/aws/parsers/iam/create_group.rb +2 -2
- data/lib/fog/aws/parsers/iam/create_user.rb +2 -2
- data/lib/fog/aws/parsers/iam/get_group.rb +6 -6
- data/lib/fog/aws/parsers/iam/get_user.rb +2 -2
- data/lib/fog/aws/parsers/iam/get_user_policy.rb +2 -2
- data/lib/fog/aws/parsers/iam/list_access_keys.rb +3 -3
- data/lib/fog/aws/parsers/iam/list_groups.rb +3 -3
- data/lib/fog/aws/parsers/iam/list_groups_for_user.rb +3 -3
- data/lib/fog/aws/parsers/iam/list_policies.rb +3 -3
- data/lib/fog/aws/parsers/iam/list_server_certificates.rb +38 -0
- data/lib/fog/aws/parsers/iam/list_signing_certificates.rb +3 -3
- data/lib/fog/aws/parsers/iam/list_users.rb +3 -3
- data/lib/fog/aws/parsers/iam/login_profile.rb +3 -3
- data/lib/fog/aws/parsers/iam/update_group.rb +2 -2
- data/lib/fog/aws/parsers/iam/update_user.rb +2 -2
- data/lib/fog/aws/parsers/iam/upload_server_certificate.rb +5 -3
- data/lib/fog/aws/parsers/iam/upload_signing_certificate.rb +2 -2
- data/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb +1 -1
- data/lib/fog/aws/parsers/rds/create_db_instance.rb +1 -1
- data/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb +1 -1
- data/lib/fog/aws/parsers/rds/create_db_parameter_group.rb +4 -4
- data/lib/fog/aws/parsers/rds/create_db_security_group.rb +1 -1
- data/lib/fog/aws/parsers/rds/create_db_snapshot.rb +1 -1
- data/lib/fog/aws/parsers/rds/db_parser.rb +16 -16
- data/lib/fog/aws/parsers/rds/delete_db_instance.rb +1 -1
- data/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb +1 -1
- data/lib/fog/aws/parsers/rds/delete_db_security_group.rb +1 -1
- data/lib/fog/aws/parsers/rds/delete_db_snapshot.rb +1 -1
- data/lib/fog/aws/parsers/rds/describe_db_instances.rb +2 -2
- data/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb +5 -5
- data/lib/fog/aws/parsers/rds/describe_db_parameters.rb +10 -10
- data/lib/fog/aws/parsers/rds/describe_db_security_groups.rb +2 -2
- data/lib/fog/aws/parsers/rds/describe_db_snapshots.rb +2 -2
- data/lib/fog/aws/parsers/rds/modify_db_instance.rb +1 -1
- data/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb +2 -2
- data/lib/fog/aws/parsers/rds/reboot_db_instance.rb +1 -1
- data/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb +1 -1
- data/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb +1 -1
- data/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb +1 -1
- data/lib/fog/aws/parsers/rds/security_group_parser.rb +4 -4
- data/lib/fog/aws/parsers/rds/snapshot_parser.rb +11 -11
- data/lib/fog/aws/parsers/ses/delete_verified_email_address.rb +1 -1
- data/lib/fog/aws/parsers/ses/get_send_quota.rb +2 -2
- data/lib/fog/aws/parsers/ses/get_send_statistics.rb +2 -2
- data/lib/fog/aws/parsers/ses/list_verified_email_addresses.rb +2 -2
- data/lib/fog/aws/parsers/ses/send_email.rb +2 -2
- data/lib/fog/aws/parsers/ses/send_raw_email.rb +2 -2
- data/lib/fog/aws/parsers/ses/verify_email_address.rb +1 -1
- data/lib/fog/aws/parsers/simpledb/basic.rb +2 -2
- data/lib/fog/aws/parsers/simpledb/domain_metadata.rb +4 -4
- data/lib/fog/aws/parsers/simpledb/get_attributes.rb +4 -4
- data/lib/fog/aws/parsers/simpledb/list_domains.rb +3 -3
- data/lib/fog/aws/parsers/simpledb/select.rb +5 -5
- data/lib/fog/aws/rds.rb +2 -3
- data/lib/fog/aws/requests/elb/configure_health_check.rb +41 -0
- data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +33 -0
- data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +35 -0
- data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +51 -0
- data/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb +31 -0
- data/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +31 -0
- data/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +43 -0
- data/lib/fog/aws/requests/iam/list_server_certificates.rb +42 -0
- data/lib/fog/aws/requests/ses/send_raw_email.rb +4 -4
- data/lib/fog/aws/simpledb.rb +2 -2
- data/lib/fog/bin.rb +1 -0
- data/lib/fog/bin/stormondemand.rb +30 -0
- data/lib/fog/cdn/parsers/aws/distribution.rb +11 -11
- data/lib/fog/cdn/parsers/aws/get_distribution_list.rb +9 -9
- data/lib/fog/cdn/parsers/aws/post_invalidation.rb +3 -3
- data/lib/fog/compute.rb +3 -0
- data/lib/fog/compute/aws.rb +4 -2
- data/lib/fog/compute/models/aws/server.rb +16 -2
- data/lib/fog/compute/models/bluebox/server.rb +11 -2
- data/lib/fog/compute/models/brightbox/server.rb +6 -0
- data/lib/fog/compute/models/ecloud/servers.rb +3 -1
- data/lib/fog/compute/models/go_grid/server.rb +1 -0
- data/lib/fog/compute/models/rackspace/server.rb +2 -1
- data/lib/fog/compute/models/slicehost/server.rb +2 -1
- data/lib/fog/compute/models/storm_on_demand/balancer.rb +38 -0
- data/lib/fog/compute/models/storm_on_demand/balancers.rb +21 -0
- data/lib/fog/compute/models/storm_on_demand/config.rb +25 -0
- data/lib/fog/compute/models/storm_on_demand/configs.rb +22 -0
- data/lib/fog/compute/models/storm_on_demand/image.rb +20 -0
- data/lib/fog/compute/models/storm_on_demand/images.rb +21 -0
- data/lib/fog/compute/models/storm_on_demand/private_ip.rb +19 -0
- data/lib/fog/compute/models/storm_on_demand/private_ips.rb +31 -0
- data/lib/fog/compute/models/storm_on_demand/server.rb +74 -0
- data/lib/fog/compute/models/storm_on_demand/servers.rb +26 -0
- data/lib/fog/compute/models/storm_on_demand/stat.rb +23 -0
- data/lib/fog/compute/models/storm_on_demand/stats.rb +22 -0
- data/lib/fog/compute/models/storm_on_demand/template.rb +22 -0
- data/lib/fog/compute/models/storm_on_demand/templates.rb +21 -0
- data/lib/fog/compute/models/voxel/image.rb +4 -1
- data/lib/fog/compute/models/voxel/server.rb +1 -0
- data/lib/fog/compute/parsers/aws/allocate_address.rb +1 -1
- data/lib/fog/compute/parsers/aws/attach_volume.rb +2 -2
- data/lib/fog/compute/parsers/aws/basic.rb +2 -2
- data/lib/fog/compute/parsers/aws/create_image.rb +1 -1
- data/lib/fog/compute/parsers/aws/create_key_pair.rb +1 -1
- data/lib/fog/compute/parsers/aws/create_snapshot.rb +4 -4
- data/lib/fog/compute/parsers/aws/create_volume.rb +3 -3
- data/lib/fog/compute/parsers/aws/deregister_image.rb +1 -1
- data/lib/fog/compute/parsers/aws/describe_addresses.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_availability_zones.rb +3 -3
- data/lib/fog/compute/parsers/aws/describe_images.rb +7 -7
- data/lib/fog/compute/parsers/aws/describe_instances.rb +17 -17
- data/lib/fog/compute/parsers/aws/describe_key_pairs.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_regions.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_reserved_instances.rb +5 -5
- data/lib/fog/compute/parsers/aws/describe_reserved_instances_offerings.rb +4 -4
- data/lib/fog/compute/parsers/aws/describe_security_groups.rb +8 -8
- data/lib/fog/compute/parsers/aws/describe_snapshots.rb +5 -5
- data/lib/fog/compute/parsers/aws/describe_tags.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_volumes.rb +8 -8
- data/lib/fog/compute/parsers/aws/detach_volume.rb +2 -2
- data/lib/fog/compute/parsers/aws/get_console_output.rb +3 -7
- data/lib/fog/compute/parsers/aws/import_key_pair.rb +1 -1
- data/lib/fog/compute/parsers/aws/monitor_unmonitor_instances.rb +3 -3
- data/lib/fog/compute/parsers/aws/register_image.rb +1 -1
- data/lib/fog/compute/parsers/aws/run_instances.rb +14 -22
- data/lib/fog/compute/parsers/aws/start_stop_instances.rb +3 -3
- data/lib/fog/compute/parsers/aws/terminate_instances.rb +6 -6
- data/lib/fog/compute/parsers/slicehost/create_slice.rb +4 -4
- data/lib/fog/compute/parsers/slicehost/get_backups.rb +3 -3
- data/lib/fog/compute/parsers/slicehost/get_flavor.rb +2 -2
- data/lib/fog/compute/parsers/slicehost/get_flavors.rb +2 -2
- data/lib/fog/compute/parsers/slicehost/get_image.rb +2 -2
- data/lib/fog/compute/parsers/slicehost/get_images.rb +2 -2
- data/lib/fog/compute/parsers/slicehost/get_slice.rb +4 -4
- data/lib/fog/compute/parsers/slicehost/get_slices.rb +4 -4
- data/lib/fog/compute/parsers/voxel/devices_list.rb +12 -12
- data/lib/fog/compute/parsers/voxel/images_list.rb +5 -5
- data/lib/fog/compute/parsers/voxel/voxcloud_create.rb +2 -2
- data/lib/fog/compute/parsers/voxel/voxcloud_status.rb +2 -2
- data/lib/fog/compute/requests/aws/describe_availability_zones.rb +17 -1
- data/lib/fog/compute/requests/aws/describe_instances.rb +6 -1
- data/lib/fog/compute/requests/storm_on_demand/add_balancer_node.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/clone_server.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/create_server.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/delete_server.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/get_server.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/get_stats.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/list_balancers.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/list_configs.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/list_images.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/list_private_ips.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/list_servers.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/list_templates.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/reboot_server.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/remove_balancer_node.rb +16 -0
- data/lib/fog/compute/requests/storm_on_demand/resize_server.rb +16 -0
- data/lib/fog/compute/requests/voxel/images_list.rb +3 -3
- data/lib/fog/compute/storm_on_demand.rb +122 -0
- data/lib/fog/core/attributes.rb +12 -0
- data/lib/fog/core/credentials.rb +1 -52
- data/lib/fog/core/errors.rb +53 -0
- data/lib/fog/core/model.rb +10 -5
- data/lib/fog/core/parser.rb +8 -3
- data/lib/fog/dns/models/aws/records.rb +1 -1
- data/lib/fog/dns/models/aws/zones.rb +1 -1
- data/lib/fog/dns/parsers/aws/change_resource_record_sets.rb +2 -2
- data/lib/fog/dns/parsers/aws/create_hosted_zone.rb +5 -5
- data/lib/fog/dns/parsers/aws/delete_hosted_zone.rb +1 -1
- data/lib/fog/dns/parsers/aws/get_change.rb +2 -2
- data/lib/fog/dns/parsers/aws/get_hosted_zone.rb +3 -3
- data/lib/fog/dns/parsers/aws/list_hosted_zones.rb +4 -4
- data/lib/fog/dns/parsers/aws/list_resource_record_sets.rb +4 -4
- data/lib/fog/dns/parsers/bluebox/create_record.rb +2 -2
- data/lib/fog/dns/parsers/bluebox/create_zone.rb +2 -2
- data/lib/fog/dns/parsers/bluebox/get_record.rb +1 -1
- data/lib/fog/dns/parsers/bluebox/get_records.rb +1 -1
- data/lib/fog/dns/parsers/bluebox/get_zone.rb +2 -2
- data/lib/fog/dns/parsers/bluebox/get_zones.rb +2 -2
- data/lib/fog/dns/parsers/slicehost/create_record.rb +2 -2
- data/lib/fog/dns/parsers/slicehost/create_zone.rb +2 -2
- data/lib/fog/dns/parsers/slicehost/get_record.rb +2 -2
- data/lib/fog/dns/parsers/slicehost/get_records.rb +2 -2
- data/lib/fog/dns/parsers/slicehost/get_zone.rb +2 -2
- data/lib/fog/dns/parsers/slicehost/get_zones.rb +2 -2
- data/lib/fog/dns/parsers/zerigo/count_hosts.rb +1 -1
- data/lib/fog/dns/parsers/zerigo/count_zones.rb +1 -1
- data/lib/fog/dns/parsers/zerigo/create_host.rb +2 -2
- data/lib/fog/dns/parsers/zerigo/create_zone.rb +2 -2
- data/lib/fog/dns/parsers/zerigo/find_hosts.rb +2 -2
- data/lib/fog/dns/parsers/zerigo/get_host.rb +2 -2
- data/lib/fog/dns/parsers/zerigo/get_zone.rb +4 -4
- data/lib/fog/dns/parsers/zerigo/get_zone_stats.rb +2 -2
- data/lib/fog/dns/parsers/zerigo/list_hosts.rb +2 -2
- data/lib/fog/dns/parsers/zerigo/list_zones.rb +2 -2
- data/lib/fog/providers.rb +1 -0
- data/lib/fog/providers/aws.rb +5 -1
- data/lib/fog/providers/storm_on_demand.rb +12 -0
- data/lib/fog/storage/models/aws/files.rb +17 -0
- data/lib/fog/storage/models/google/files.rb +17 -0
- data/lib/fog/storage/models/rackspace/files.rb +17 -0
- data/lib/fog/storage/parsers/aws/access_control_list.rb +4 -4
- data/lib/fog/storage/parsers/aws/complete_multipart_upload.rb +1 -1
- data/lib/fog/storage/parsers/aws/copy_object.rb +2 -2
- data/lib/fog/storage/parsers/aws/get_bucket.rb +10 -10
- data/lib/fog/storage/parsers/aws/get_bucket_location.rb +1 -1
- data/lib/fog/storage/parsers/aws/get_bucket_logging.rb +5 -5
- data/lib/fog/storage/parsers/aws/get_bucket_object_versions.rb +8 -8
- data/lib/fog/storage/parsers/aws/get_bucket_versioning.rb +1 -1
- data/lib/fog/storage/parsers/aws/get_bucket_website.rb +2 -2
- data/lib/fog/storage/parsers/aws/get_request_payment.rb +1 -1
- data/lib/fog/storage/parsers/aws/get_service.rb +3 -3
- data/lib/fog/storage/parsers/aws/initiate_multipart_upload.rb +1 -1
- data/lib/fog/storage/parsers/aws/list_multipart_uploads.rb +7 -7
- data/lib/fog/storage/parsers/aws/list_parts.rb +7 -7
- data/lib/fog/storage/parsers/google/access_control_list.rb +3 -3
- data/lib/fog/storage/parsers/google/copy_object.rb +2 -2
- data/lib/fog/storage/parsers/google/get_bucket.rb +10 -10
- data/lib/fog/storage/parsers/google/get_bucket_logging.rb +5 -5
- data/lib/fog/storage/parsers/google/get_bucket_object_versions.rb +9 -9
- data/lib/fog/storage/parsers/google/get_bucket_versioning.rb +1 -1
- data/lib/fog/storage/parsers/google/get_request_payment.rb +1 -1
- data/lib/fog/storage/parsers/google/get_service.rb +3 -3
- data/lib/fog/storage/requests/aws/get_object.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_catalog.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_catalog_item.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_internet_services.rb +7 -7
- data/lib/fog/terremark/parsers/shared/get_network_ips.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_node_services.rb +3 -3
- data/lib/fog/terremark/parsers/shared/get_organization.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_public_ips.rb +2 -2
- data/lib/fog/terremark/parsers/shared/get_vapp_template.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_vdc.rb +6 -6
- data/lib/fog/terremark/parsers/shared/internet_service.rb +7 -7
- data/lib/fog/terremark/parsers/shared/network.rb +1 -1
- data/lib/fog/terremark/parsers/shared/node_service.rb +3 -3
- data/lib/fog/terremark/parsers/shared/public_ip.rb +2 -2
- data/lib/fog/terremark/parsers/shared/vapp.rb +7 -7
- data/spec/ecloud/spec_helper.rb +1 -1
- data/tests/aws/requests/cloud_formation/stack_tests.rb +2 -0
- data/tests/aws/requests/elb/helper.rb +44 -0
- data/tests/aws/requests/elb/load_balancer_tests.rb +82 -0
- data/tests/aws/requests/elb/model_tests.rb +187 -0
- data/tests/aws/requests/iam/helper.rb +41 -0
- data/tests/aws/requests/iam/login_profile_tests.rb +1 -1
- data/tests/aws/requests/iam/server_certificate_tests.rb +36 -0
- data/tests/aws/requests/rds/instance_tests.rb +63 -66
- data/tests/aws/requests/simpledb/attributes_tests.rb +4 -4
- data/tests/aws/signed_params_tests.rb +3 -0
- data/tests/compute/helper.rb +2 -2
- data/tests/compute/models/aws/address_tests.rb +2 -2
- data/tests/compute/models/aws/security_group_tests.rb +12 -0
- data/tests/compute/models/aws/server_tests.rb +8 -1
- data/tests/compute/models/aws/snapshot_tests.rb +2 -2
- data/tests/compute/models/aws/volume_tests.rb +3 -3
- data/tests/compute/requests/aws/address_tests.rb +1 -1
- data/tests/compute/requests/aws/instance_tests.rb +1 -1
- data/tests/compute/requests/aws/key_pair_tests.rb +5 -1
- data/tests/compute/requests/aws/snapshot_tests.rb +1 -1
- data/tests/compute/requests/aws/tag_tests.rb +1 -1
- data/tests/compute/requests/aws/volume_tests.rb +3 -3
- data/tests/compute/requests/bluebox/block_tests.rb +14 -13
- data/tests/compute/requests/brightbox/helper.rb +1 -2
- data/tests/compute/requests/storm_on_demand/server_tests.rb +64 -0
- data/tests/compute/requests/voxel/image_tests.rb +30 -24
- data/tests/compute/requests/voxel/server_tests.rb +1 -1
- data/tests/dns/requests/aws/dns_tests.rb +1 -1
- data/tests/helper.rb +1 -1
- data/tests/storage/requests/aws/multipart_upload_tests.rb +1 -1
- data/tests/storage/requests/google/bucket_tests.rb +0 -1
- data/tests/storage/requests/rackspace/object_tests.rb +1 -0
- metadata +125 -66
- data/docs/_posts/2011-01-01-start.markdown +0 -21
@@ -90,15 +90,15 @@ module Fog
|
|
90
90
|
case name
|
91
91
|
when 'Allocated', 'Limit', 'Units', 'Used'
|
92
92
|
if @in_cpu
|
93
|
-
@response['ComputeCapacity']['Cpu'][name] =
|
93
|
+
@response['ComputeCapacity']['Cpu'][name] = value
|
94
94
|
elsif @in_deployed_vms_quota
|
95
|
-
@response['ComputeCapacity']['DeployedVmsQuota'][name] =
|
95
|
+
@response['ComputeCapacity']['DeployedVmsQuota'][name] = value
|
96
96
|
elsif @in_instantiated_vms_quota
|
97
|
-
@response['ComputeCapacity']['InstantiatedVmsQuota'][name] =
|
97
|
+
@response['ComputeCapacity']['InstantiatedVmsQuota'][name] = value
|
98
98
|
elsif @in_memory
|
99
|
-
@response['ComputeCapacity']['Memory'][name] =
|
99
|
+
@response['ComputeCapacity']['Memory'][name] = value
|
100
100
|
elsif @in_storage_capacity
|
101
|
-
@response['StorageCapacity'][name] =
|
101
|
+
@response['StorageCapacity'][name] = value
|
102
102
|
end
|
103
103
|
when 'Cpu'
|
104
104
|
@in_cpu = false
|
@@ -111,7 +111,7 @@ module Fog
|
|
111
111
|
when 'StorageCapacity'
|
112
112
|
@in_storage_capacity = false
|
113
113
|
when 'Type'
|
114
|
-
@response[name] =
|
114
|
+
@response[name] = value
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
@@ -31,27 +31,27 @@ module Fog
|
|
31
31
|
def end_element(name)
|
32
32
|
case name
|
33
33
|
when 'Description', 'Protocol'
|
34
|
-
@response[name] =
|
34
|
+
@response[name] = value
|
35
35
|
when 'Enabled'
|
36
|
-
if
|
36
|
+
if value == 'false'
|
37
37
|
@response[name] = false
|
38
38
|
else
|
39
39
|
@response[name] = true
|
40
40
|
end
|
41
41
|
when 'Id'
|
42
42
|
if @in_public_ip_address
|
43
|
-
@response['PublicIpAddress'][name] =
|
43
|
+
@response['PublicIpAddress'][name] = value.to_i
|
44
44
|
else
|
45
|
-
@response[name] =
|
45
|
+
@response[name] = value.to_i
|
46
46
|
end
|
47
47
|
when 'Name'
|
48
48
|
if @in_public_ip_address
|
49
|
-
@response['PublicIpAddress'][name] =
|
49
|
+
@response['PublicIpAddress'][name] = value
|
50
50
|
else
|
51
|
-
@response[name] =
|
51
|
+
@response[name] = value
|
52
52
|
end
|
53
53
|
when 'Port', 'Timeout'
|
54
|
-
@response[name] =
|
54
|
+
@response[name] = value.to_i
|
55
55
|
when 'PublicIpAddress'
|
56
56
|
@in_public_ip_address = false
|
57
57
|
end
|
@@ -12,15 +12,15 @@ module Fog
|
|
12
12
|
def end_element(name)
|
13
13
|
case name
|
14
14
|
when 'Description', 'Href', 'IpAddress', 'Name', 'Protocol'
|
15
|
-
@response[name] =
|
15
|
+
@response[name] = value
|
16
16
|
when 'Enabled'
|
17
|
-
if
|
17
|
+
if value == 'false'
|
18
18
|
@response[name] = false
|
19
19
|
else
|
20
20
|
@response[name] = true
|
21
21
|
end
|
22
22
|
when 'Id', 'Port'
|
23
|
-
@response[name] =
|
23
|
+
@response[name] = value.to_i
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -39,15 +39,15 @@ module Fog
|
|
39
39
|
def end_element(name)
|
40
40
|
case name
|
41
41
|
when 'IpAddress'
|
42
|
-
@response['IpAddress'] =
|
42
|
+
@response['IpAddress'] = value
|
43
43
|
when 'Description'
|
44
44
|
if @in_operating_system
|
45
|
-
@response['OperatingSystem'][name] =
|
45
|
+
@response['OperatingSystem'][name] = value
|
46
46
|
@in_operating_system = false
|
47
47
|
end
|
48
48
|
when 'ResourceType'
|
49
|
-
@resource_type =
|
50
|
-
case
|
49
|
+
@resource_type = value
|
50
|
+
case value
|
51
51
|
when '3'
|
52
52
|
@get_cpu = true # cpu
|
53
53
|
when '4' # memory
|
@@ -58,12 +58,12 @@ module Fog
|
|
58
58
|
when 'VirtualQuantity'
|
59
59
|
case @resource_type
|
60
60
|
when '3'
|
61
|
-
@response['VirtualHardware']['cpu'] =
|
61
|
+
@response['VirtualHardware']['cpu'] = value
|
62
62
|
when '4'
|
63
|
-
@response['VirtualHardware']['ram'] =
|
63
|
+
@response['VirtualHardware']['ram'] = value
|
64
64
|
when '17'
|
65
65
|
@response['VirtualHardware']['disks'] ||= []
|
66
|
-
@response['VirtualHardware']['disks'] <<
|
66
|
+
@response['VirtualHardware']['disks'] << value
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
data/spec/ecloud/spec_helper.rb
CHANGED
@@ -313,7 +313,7 @@ Spec::Matchers.define :have_key_with_array do |expected_key, expected_array|
|
|
313
313
|
end
|
314
314
|
failure_message_for_should do |actual|
|
315
315
|
"Items not found in array:\n#{expected_array.select { |expected_item| !actual[expected_key].include?(expected_item) }.map { |item| item.inspect }.join("\n")}\n" +
|
316
|
-
"
|
316
|
+
"Original items:\n#{actual[expected_key].map { |item| item.inspect }.join("\n") }\n"+
|
317
317
|
"Length Difference: #{expected_array.length - actual[expected_key].length}"
|
318
318
|
end
|
319
319
|
end
|
@@ -113,6 +113,8 @@ Shindo.tests('AWS::CloudFormation | stack requests', ['aws', 'cloudformation'])
|
|
113
113
|
AWS[:cloud_formation].describe_stacks.body
|
114
114
|
end
|
115
115
|
|
116
|
+
sleep(1) # avoid throttling
|
117
|
+
|
116
118
|
tests("describe_stack_events('#{@stack_name}')").formats(@describe_stack_events_format) do
|
117
119
|
pending if Fog.mocking?
|
118
120
|
AWS[:cloud_formation].describe_stack_events(@stack_name).body
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class AWS
|
2
|
+
module ELB
|
3
|
+
module Formats
|
4
|
+
|
5
|
+
BASIC = {
|
6
|
+
'ResponseMetadata' => {'RequestId' => String}
|
7
|
+
}
|
8
|
+
|
9
|
+
LOAD_BALANCER = {
|
10
|
+
"CreatedTime" => Time,
|
11
|
+
"ListenerDescriptions" => Array,
|
12
|
+
"HealthCheck" => {"HealthyThreshold" => Integer, "Timeout" => Integer, "UnhealthyThreshold" => Integer, "Interval" => Integer, "Target" => String},
|
13
|
+
"Policies" => {"LBCookieStickinessPolicies" => Array, "AppCookieStickinessPolicies" => Array},
|
14
|
+
"AvailabilityZones" => Array,
|
15
|
+
"DNSName" => String,
|
16
|
+
"LoadBalancerName"=> String,
|
17
|
+
"Instances"=> Array
|
18
|
+
}
|
19
|
+
|
20
|
+
CREATE_LOAD_BALANCER = BASIC.merge({
|
21
|
+
'CreateLoadBalancerResult' => { 'DNSName' => String }
|
22
|
+
})
|
23
|
+
|
24
|
+
DESCRIBE_LOAD_BALANCERS = BASIC.merge({
|
25
|
+
'DescribeLoadBalancersResult' => {'LoadBalancerDescriptions' => [LOAD_BALANCER]}
|
26
|
+
})
|
27
|
+
|
28
|
+
CONFIGURE_HEALTH_CHECK = BASIC.merge({
|
29
|
+
'ConfigureHealthCheckResult' => {'HealthCheck' => {
|
30
|
+
'Target' => String,
|
31
|
+
'Interval' => Integer,
|
32
|
+
'Timeout' => Integer,
|
33
|
+
'UnhealthyThreshold' => Integer,
|
34
|
+
'HealthyThreshold' => Integer
|
35
|
+
}}
|
36
|
+
})
|
37
|
+
|
38
|
+
DELETE_LOAD_BALANCER = BASIC.merge({
|
39
|
+
'DeleteLoadBalancerResult' => NilClass
|
40
|
+
})
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
Shindo.tests('AWS::ELB | load_balancer_tests', ['aws', 'elb']) do
|
2
|
+
@load_balancer_id = 'fog-test-elb'
|
3
|
+
|
4
|
+
tests('success') do
|
5
|
+
pending if Fog.mocking?
|
6
|
+
|
7
|
+
tests("#create_load_balancer").formats(AWS::ELB::Formats::CREATE_LOAD_BALANCER) do
|
8
|
+
zones = ['us-east-1a']
|
9
|
+
listeners = [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'http'}]
|
10
|
+
AWS[:elb].create_load_balancer(zones, @load_balancer_id, listeners).body
|
11
|
+
end
|
12
|
+
|
13
|
+
tests("#describe_load_balancers").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCERS) do
|
14
|
+
AWS[:elb].describe_load_balancers.body
|
15
|
+
end
|
16
|
+
|
17
|
+
tests('#describe_load_balancers with bad lb') do
|
18
|
+
raises(Fog::AWS::ELB::NotFound) { AWS[:elb].describe_load_balancers('none-such-lb') }
|
19
|
+
end
|
20
|
+
|
21
|
+
tests("#configure_health_check").formats(AWS::ELB::Formats::CONFIGURE_HEALTH_CHECK) do
|
22
|
+
health_check = {
|
23
|
+
'Target' => 'HTTP:80/index.html',
|
24
|
+
'Interval' => 10,
|
25
|
+
'Timeout' => 5,
|
26
|
+
'UnhealthyThreshold' => 2,
|
27
|
+
'HealthyThreshold' => 3
|
28
|
+
}
|
29
|
+
|
30
|
+
AWS[:elb].configure_health_check(@load_balancer_id, health_check).body
|
31
|
+
end
|
32
|
+
|
33
|
+
tests("#create_app_cookie_stickiness_policy").formats(AWS::ELB::Formats::BASIC) do
|
34
|
+
cookie, policy = 'fog-app-cookie', 'fog-app-policy'
|
35
|
+
AWS[:elb].create_app_cookie_stickiness_policy(@load_balancer_id, policy, cookie).body
|
36
|
+
end
|
37
|
+
|
38
|
+
tests("#create_lb_cookie_stickiness_policy with expiry").formats(AWS::ELB::Formats::BASIC) do
|
39
|
+
policy = 'fog-lb-expiry'
|
40
|
+
expiry = 300
|
41
|
+
AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy, expiry).body
|
42
|
+
end
|
43
|
+
|
44
|
+
tests("#create_lb_cookie_stickiness_policy without expiry").formats(AWS::ELB::Formats::BASIC) do
|
45
|
+
policy = 'fog-lb-no-expiry'
|
46
|
+
AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy).body
|
47
|
+
end
|
48
|
+
|
49
|
+
tests("#delete_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
|
50
|
+
policy = 'fog-lb-no-expiry'
|
51
|
+
AWS[:elb].delete_load_balancer_policy(@load_balancer_id, policy).body
|
52
|
+
end
|
53
|
+
|
54
|
+
tests("#create_load_balancer_listeners").formats(AWS::ELB::Formats::BASIC) do
|
55
|
+
listeners = [
|
56
|
+
{'Protocol' => 'tcp', 'LoadBalancerPort' => 443, 'InstancePort' => 443},
|
57
|
+
{'Protocol' => 'HTTP', 'LoadBalancerPort' => 80, 'InstancePort' => 80}
|
58
|
+
]
|
59
|
+
AWS[:elb].create_load_balancer_listeners(@load_balancer_id, listeners).body
|
60
|
+
end
|
61
|
+
|
62
|
+
tests("#set_load_balancer_policies_of_listener adds policy").formats(AWS::ELB::Formats::BASIC) do
|
63
|
+
port, policies = 80, ['fog-lb-expiry']
|
64
|
+
body = AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, policies).body
|
65
|
+
end
|
66
|
+
|
67
|
+
tests("#set_load_balancer_policies_of_listener removes policy").formats(AWS::ELB::Formats::BASIC) do
|
68
|
+
port = 80
|
69
|
+
body = AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, []).body
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
tests("#delete_load_balancer_listeners").formats(AWS::ELB::Formats::BASIC) do
|
74
|
+
ports = [80, 443]
|
75
|
+
AWS[:elb].delete_load_balancer_listeners(@load_balancer_id, ports).body
|
76
|
+
end
|
77
|
+
|
78
|
+
tests("#delete_load_balancer").formats(AWS::ELB::Formats::DELETE_LOAD_BALANCER) do
|
79
|
+
AWS[:elb].delete_load_balancer(@load_balancer_id).body
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,187 @@
|
|
1
|
+
Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
2
|
+
|
3
|
+
|
4
|
+
tests('success') do
|
5
|
+
pending if Fog.mocking?
|
6
|
+
|
7
|
+
tests('load_balancers') do
|
8
|
+
tests('getting a missing elb') do
|
9
|
+
returns(nil) { AWS[:elb].load_balancers.get('no-such-elb') }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
elb = nil
|
14
|
+
elb_id = 'fog-test'
|
15
|
+
|
16
|
+
tests('create') do
|
17
|
+
elb = AWS[:elb].load_balancers.create(:id => elb_id)
|
18
|
+
tests("dns names is set").returns(true) { elb.dns_name.is_a?(String) }
|
19
|
+
tests("created_at is set").returns(true) { (Time.now-10..Time.now).include? elb.created_at }
|
20
|
+
tests("policies is empty").returns([]) { elb.policies }
|
21
|
+
end
|
22
|
+
|
23
|
+
tests('all') do
|
24
|
+
elb_ids = AWS[:elb].load_balancers.all.map{|e| e.id}
|
25
|
+
tests("contains elb").returns(true) { elb_ids.include? elb_id }
|
26
|
+
end
|
27
|
+
|
28
|
+
tests('get') do
|
29
|
+
elb2 = AWS[:elb].load_balancers.get(elb_id)
|
30
|
+
tests('ids match').returns(elb_id) { elb2.id }
|
31
|
+
end
|
32
|
+
|
33
|
+
tests('createing a duplicate elb') do
|
34
|
+
raises(Fog::AWS::ELB::IdentifierTaken) do
|
35
|
+
AWS[:elb].load_balancers.create(:id => elb_id, :availability_zones => ['us-east-1d'])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
tests('registering an invalid instance') do
|
40
|
+
raises(Fog::AWS::ELB::InvalidInstance) { elb.register_instances('i-00000000') }
|
41
|
+
end
|
42
|
+
|
43
|
+
tests('deregistering an invalid instance') do
|
44
|
+
raises(Fog::AWS::ELB::InvalidInstance) { elb.deregister_instances('i-00000000') }
|
45
|
+
end
|
46
|
+
|
47
|
+
server = AWS[:compute].servers.create
|
48
|
+
tests('register instance') do
|
49
|
+
begin
|
50
|
+
elb.register_instances(server.id)
|
51
|
+
rescue Fog::AWS::ELB::InvalidInstance
|
52
|
+
# It may take a moment for a newly created instances to be visible to ELB requests
|
53
|
+
raise if @retried_registered_instance
|
54
|
+
@retried_registered_instance = true
|
55
|
+
sleep 1
|
56
|
+
retry
|
57
|
+
end
|
58
|
+
|
59
|
+
returns([server.id]) { elb.instances }
|
60
|
+
end
|
61
|
+
|
62
|
+
tests('instance_health') do
|
63
|
+
returns('OutOfService') do
|
64
|
+
elb.instance_health.detect{|hash| hash['InstanceId'] == server.id}['State']
|
65
|
+
end
|
66
|
+
|
67
|
+
returns([server.id]) { elb.instances_out_of_service }
|
68
|
+
end
|
69
|
+
|
70
|
+
tests('deregister instance') do
|
71
|
+
elb.deregister_instances(server.id)
|
72
|
+
returns([]) { elb.instances }
|
73
|
+
end
|
74
|
+
server.destroy
|
75
|
+
|
76
|
+
tests('disable_availability_zones') do
|
77
|
+
elb.disable_availability_zones(%w{us-east-1c us-east-1d})
|
78
|
+
returns(%w{us-east-1a us-east-1b}) { elb.availability_zones.sort }
|
79
|
+
end
|
80
|
+
|
81
|
+
tests('enable_availability_zones') do
|
82
|
+
elb.enable_availability_zones(%w{us-east-1c us-east-1d})
|
83
|
+
returns(%w{us-east-1a us-east-1b us-east-1c us-east-1d}) { elb.availability_zones.sort }
|
84
|
+
end
|
85
|
+
|
86
|
+
tests('default health check') do
|
87
|
+
default_health_check = {
|
88
|
+
"HealthyThreshold"=>10,
|
89
|
+
"Timeout"=>5,
|
90
|
+
"UnhealthyThreshold"=>2,
|
91
|
+
"Interval"=>30,
|
92
|
+
"Target"=>"TCP:80"
|
93
|
+
}
|
94
|
+
returns(default_health_check) { elb.health_check }
|
95
|
+
end
|
96
|
+
|
97
|
+
tests('configure_health_check') do
|
98
|
+
new_health_check = {
|
99
|
+
"HealthyThreshold"=>5,
|
100
|
+
"Timeout"=>10,
|
101
|
+
"UnhealthyThreshold"=>3,
|
102
|
+
"Interval"=>15,
|
103
|
+
"Target"=>"HTTP:80/index.html"
|
104
|
+
}
|
105
|
+
elb.configure_health_check(new_health_check)
|
106
|
+
returns(new_health_check) { elb.health_check }
|
107
|
+
end
|
108
|
+
|
109
|
+
tests('listeners') do
|
110
|
+
default_listener_description = [{"Listener"=>{"InstancePort"=>80, "Protocol"=>"HTTP", "LoadBalancerPort"=>80}, "PolicyNames"=>[]}]
|
111
|
+
tests('default') do
|
112
|
+
returns(1) { elb.listeners.size }
|
113
|
+
|
114
|
+
listener = elb.listeners.first
|
115
|
+
returns([80,80,'HTTP', []]) { [listener.instance_port, listener.lb_port, listener.protocol, listener.policy_names] }
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
tests('#get') do
|
120
|
+
returns(80) { elb.listeners.get(80).lb_port }
|
121
|
+
end
|
122
|
+
|
123
|
+
tests('create') do
|
124
|
+
new_listener = { 'InstancePort' => 443, 'LoadBalancerPort' => 443, 'Protocol' => 'TCP'}
|
125
|
+
elb.listeners.create(:instance_port => 443, :lb_port => 443, :protocol => 'TCP')
|
126
|
+
returns(2) { elb.listeners.size }
|
127
|
+
returns(443) { elb.listeners.get(443).lb_port }
|
128
|
+
end
|
129
|
+
|
130
|
+
tests('destroy') do
|
131
|
+
elb.listeners.get(443).destroy
|
132
|
+
returns(nil) { elb.listeners.get(443) }
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
tests('policies') do
|
137
|
+
app_policy_id = 'my-app-policy'
|
138
|
+
|
139
|
+
tests 'are empty' do
|
140
|
+
returns([]) { elb.policies.to_a }
|
141
|
+
end
|
142
|
+
|
143
|
+
tests('#all') do
|
144
|
+
returns([]) { elb.policies.all.to_a }
|
145
|
+
end
|
146
|
+
|
147
|
+
tests('create app policy') do
|
148
|
+
elb.policies.create(:id => app_policy_id, :cookie => 'my-app-cookie', :cookie_stickiness => :app)
|
149
|
+
returns(app_policy_id) { elb.policies.first.id }
|
150
|
+
end
|
151
|
+
|
152
|
+
tests('get policy') do
|
153
|
+
returns(app_policy_id) { elb.policies.get(app_policy_id).id }
|
154
|
+
end
|
155
|
+
|
156
|
+
tests('destroy app policy') do
|
157
|
+
elb.policies.first.destroy
|
158
|
+
returns([]) { elb.policies.to_a }
|
159
|
+
end
|
160
|
+
|
161
|
+
lb_policy_id = 'my-lb-policy'
|
162
|
+
tests('create lb policy') do
|
163
|
+
elb.policies.create(:id => lb_policy_id, :expiration => 600, :cookie_stickiness => :lb)
|
164
|
+
returns(lb_policy_id) { elb.policies.first.id }
|
165
|
+
end
|
166
|
+
|
167
|
+
tests('setting a listener policy') do
|
168
|
+
elb.set_listener_policy(80, lb_policy_id)
|
169
|
+
returns([lb_policy_id]) { elb.listeners.get(80).policy_names }
|
170
|
+
end
|
171
|
+
|
172
|
+
tests('unsetting a listener policy') do
|
173
|
+
elb.unset_listener_policy(80)
|
174
|
+
returns([]) { elb.listeners.get(80).policy_names }
|
175
|
+
end
|
176
|
+
|
177
|
+
tests('a malformed policy') do
|
178
|
+
raises(ArgumentError) { elb.policies.create(:id => 'foo', :cookie_stickiness => 'invalid stickiness') }
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
tests('destroy') do
|
183
|
+
elb.destroy
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
end
|