fog 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +7 -4
- data/bin/fog +4 -1
- data/changelog.txt +464 -0
- data/docs/index.markdown +2 -2
- data/fog.gemspec +11 -11
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/auto_scaling.rb +221 -0
- data/lib/fog/aws/cloud_formation.rb +1 -1
- data/lib/fog/aws/cloud_watch.rb +110 -0
- data/lib/fog/aws/elb.rb +58 -26
- data/lib/fog/aws/iam.rb +65 -13
- data/lib/fog/aws/models/auto_scaling/activities.rb +30 -0
- data/lib/fog/aws/models/auto_scaling/activity.rb +29 -0
- data/lib/fog/aws/models/auto_scaling/configuration.rb +63 -0
- data/lib/fog/aws/models/auto_scaling/configurations.rb +35 -0
- data/lib/fog/aws/models/auto_scaling/group.rb +140 -0
- data/lib/fog/aws/models/auto_scaling/groups.rb +35 -0
- data/lib/fog/aws/models/auto_scaling/instance.rb +60 -0
- data/lib/fog/aws/models/auto_scaling/instances.rb +30 -0
- data/lib/fog/aws/models/cloud_watch/metric.rb +14 -0
- data/lib/fog/aws/models/cloud_watch/metric_statistic.rb +46 -0
- data/lib/fog/aws/models/cloud_watch/metric_statistics.rb +23 -0
- data/lib/fog/aws/models/cloud_watch/metrics.rb +32 -0
- data/lib/fog/aws/models/elb/listener.rb +6 -0
- data/lib/fog/aws/models/elb/listeners.rb +2 -2
- data/lib/fog/aws/models/elb/load_balancer.rb +8 -5
- data/lib/fog/aws/models/rds/server.rb +3 -1
- data/lib/fog/aws/parsers/auto_scaling/basic.rb +28 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb +39 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb +126 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_instances.rb +43 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb +94 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb +66 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_policies.rb +66 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_scaling_activities.rb +47 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb +39 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb +46 -0
- data/lib/fog/aws/parsers/auto_scaling/put_scaling_policy.rb +30 -0
- data/lib/fog/aws/parsers/auto_scaling/terminate_instance_in_auto_scaling_group.rb +35 -0
- data/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb +42 -0
- data/lib/fog/aws/parsers/cloud_watch/list_metrics.rb +58 -0
- data/lib/fog/aws/parsers/cloud_watch/put_metric_data.rb +26 -0
- data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +1 -1
- data/lib/fog/aws/parsers/iam/get_group_policy.rb +27 -0
- data/lib/fog/aws/parsers/iam/list_account_aliases.rb +28 -0
- data/lib/fog/aws/parsers/rds/db_engine_version_parser.rb +35 -0
- data/lib/fog/aws/parsers/rds/db_parser.rb +1 -1
- data/lib/fog/aws/parsers/rds/describe_db_engine_versions.rb +39 -0
- data/lib/fog/aws/parsers/rds/describe_db_reserved_instances.rb +43 -0
- data/lib/fog/aws/parsers/sns/add_permission.rb +24 -0
- data/lib/fog/aws/parsers/sns/confirm_subscription.rb +24 -0
- data/lib/fog/aws/parsers/sns/create_topic.rb +24 -0
- data/lib/fog/aws/parsers/sns/delete_topic.rb +24 -0
- data/lib/fog/aws/parsers/sns/get_topic_attributes.rb +32 -0
- data/lib/fog/aws/parsers/sns/list_subscriptions.rb +29 -0
- data/lib/fog/aws/parsers/sns/list_topics.rb +26 -0
- data/lib/fog/aws/parsers/sns/publish.rb +24 -0
- data/lib/fog/aws/parsers/sns/remove_permission.rb +24 -0
- data/lib/fog/aws/parsers/sns/set_topic_attributes.rb +24 -0
- data/lib/fog/aws/parsers/sns/subscribe.rb +24 -0
- data/lib/fog/aws/parsers/sns/unsubscribe.rb +24 -0
- data/lib/fog/aws/parsers/sqs/basic.rb +23 -0
- data/lib/fog/aws/parsers/sqs/create_queue.rb +26 -0
- data/lib/fog/aws/parsers/sqs/get_queue_attributes.rb +35 -0
- data/lib/fog/aws/parsers/sqs/list_queues.rb +25 -0
- data/lib/fog/aws/parsers/sqs/receive_message.rb +41 -0
- data/lib/fog/aws/parsers/sqs/send_message.rb +28 -0
- data/lib/fog/aws/rds.rb +3 -1
- data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +108 -0
- data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +105 -0
- data/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb +45 -0
- data/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb +48 -0
- data/lib/fog/aws/requests/auto_scaling/delete_policy.rb +47 -0
- data/lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb +48 -0
- data/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb +52 -0
- data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb +128 -0
- data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb +96 -0
- data/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb +108 -0
- data/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb +60 -0
- data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +85 -0
- data/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb +88 -0
- data/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb +54 -0
- data/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb +83 -0
- data/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb +56 -0
- data/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb +66 -0
- data/lib/fog/aws/requests/auto_scaling/execute_policy.rb +50 -0
- data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +66 -0
- data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +57 -0
- data/lib/fog/aws/requests/auto_scaling/resume_processes.rb +50 -0
- data/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb +87 -0
- data/lib/fog/aws/requests/auto_scaling/set_instance_health.rb +55 -0
- data/lib/fog/aws/requests/auto_scaling/suspend_processes.rb +57 -0
- data/lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb +65 -0
- data/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb +79 -0
- data/lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb +48 -0
- data/lib/fog/aws/requests/cloud_watch/list_metrics.rb +38 -0
- data/lib/fog/aws/requests/cloud_watch/put_metric_data.rb +73 -0
- data/lib/fog/aws/requests/elb/configure_health_check.rb +24 -0
- data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +21 -0
- data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +21 -0
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +55 -0
- data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +28 -0
- data/lib/fog/aws/requests/elb/delete_load_balancer.rb +18 -0
- data/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb +20 -1
- data/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +23 -0
- data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +21 -5
- data/lib/fog/aws/requests/elb/describe_instance_health.rb +35 -0
- data/lib/fog/aws/requests/elb/describe_load_balancers.rb +29 -0
- data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +18 -5
- data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +18 -3
- data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +22 -5
- data/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb +40 -0
- data/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +37 -0
- data/lib/fog/aws/requests/iam/create_account_alias.rb +19 -0
- data/lib/fog/aws/requests/iam/delete_account_alias.rb +19 -0
- data/lib/fog/aws/requests/iam/delete_server_certificate.rb +14 -0
- data/lib/fog/aws/requests/iam/get_group_policy.rb +36 -0
- data/lib/fog/aws/requests/iam/get_server_certificate.rb +50 -0
- data/lib/fog/aws/requests/iam/list_account_aliases.rb +18 -0
- data/lib/fog/aws/requests/iam/list_server_certificates.rb +12 -0
- data/lib/fog/aws/requests/iam/put_group_policy.rb +1 -1
- data/lib/fog/aws/requests/iam/put_user_policy.rb +1 -1
- data/lib/fog/aws/requests/iam/upload_server_certificate.rb +53 -5
- data/lib/fog/aws/requests/rds/describe_db_engine_versions.rb +34 -0
- data/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb +42 -0
- data/lib/fog/aws/requests/simpledb/get_attributes.rb +29 -17
- data/lib/fog/aws/requests/simpledb/select.rb +11 -3
- data/lib/fog/aws/requests/sns/add_permission.rb +26 -0
- data/lib/fog/aws/requests/sns/confirm_subscription.rb +33 -0
- data/lib/fog/aws/requests/sns/create_topic.rb +29 -0
- data/lib/fog/aws/requests/sns/delete_topic.rb +29 -0
- data/lib/fog/aws/requests/sns/get_topic_attributes.rb +29 -0
- data/lib/fog/aws/requests/sns/list_subscriptions.rb +29 -0
- data/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb +31 -0
- data/lib/fog/aws/requests/sns/list_topics.rb +29 -0
- data/lib/fog/aws/requests/sns/publish.rb +34 -0
- data/lib/fog/aws/requests/sns/remove_permission.rb +26 -0
- data/lib/fog/aws/requests/sns/set_topic_attributes.rb +33 -0
- data/lib/fog/aws/requests/sns/subscribe.rb +33 -0
- data/lib/fog/aws/requests/sns/unsubscribe.rb +29 -0
- data/lib/fog/aws/requests/sqs/change_message_visibility.rb +33 -0
- data/lib/fog/aws/requests/sqs/create_queue.rb +31 -0
- data/lib/fog/aws/requests/sqs/delete_message.rb +31 -0
- data/lib/fog/aws/requests/sqs/delete_queue.rb +29 -0
- data/lib/fog/aws/requests/sqs/get_queue_attributes.rb +31 -0
- data/lib/fog/aws/requests/sqs/list_queues.rb +28 -0
- data/lib/fog/aws/requests/sqs/receive_message.rb +34 -0
- data/lib/fog/aws/requests/sqs/send_message.rb +31 -0
- data/lib/fog/aws/requests/sqs/set_queue_attributes.rb +33 -0
- data/lib/fog/aws/sns.rb +112 -0
- data/lib/fog/aws/sqs.rb +115 -0
- data/lib/fog/bin.rb +1 -0
- data/lib/fog/bin/aws.rb +16 -0
- data/lib/fog/bin/brightbox.rb +1 -1
- data/lib/fog/bin/ninefold.rb +5 -0
- data/lib/fog/bin/vcloud.rb +30 -0
- data/lib/fog/bin/virtual_box.rb +5 -1
- data/lib/fog/cdn/rackspace.rb +16 -8
- data/lib/fog/compute.rb +4 -1
- data/lib/fog/compute/aws.rb +16 -4
- data/lib/fog/compute/bluebox.rb +2 -2
- data/lib/fog/compute/brightbox.rb +4 -4
- data/lib/fog/compute/go_grid.rb +2 -2
- data/lib/fog/compute/linode.rb +2 -2
- data/lib/fog/compute/models/aws/server.rb +17 -3
- data/lib/fog/compute/models/aws/spot_request.rb +93 -0
- data/lib/fog/compute/models/aws/spot_requests.rb +48 -0
- data/lib/fog/compute/models/aws/volume.rb +13 -13
- data/lib/fog/compute/models/bluebox/server.rb +4 -4
- data/lib/fog/compute/models/go_grid/server.rb +2 -2
- data/lib/fog/compute/models/ninefold/server.rb +18 -14
- data/lib/fog/compute/models/rackspace/flavor.rb +3 -2
- data/lib/fog/compute/models/rackspace/server.rb +2 -2
- data/lib/fog/compute/models/slicehost/server.rb +1 -1
- data/lib/fog/compute/models/vcloud/catalog.rb +22 -0
- data/lib/fog/compute/models/vcloud/catalog_item.rb +29 -0
- data/lib/fog/compute/models/vcloud/catalog_items.rb +32 -0
- data/lib/fog/compute/models/vcloud/catalogs.rb +39 -0
- data/lib/fog/compute/models/vcloud/ip.rb +42 -0
- data/lib/fog/compute/models/vcloud/ips.rb +33 -0
- data/lib/fog/compute/models/vcloud/network.rb +65 -0
- data/lib/fog/compute/models/vcloud/networks.rb +34 -0
- data/lib/fog/compute/models/vcloud/server.rb +291 -0
- data/lib/fog/compute/models/vcloud/servers.rb +58 -0
- data/lib/fog/compute/models/vcloud/task.rb +21 -0
- data/lib/fog/compute/models/vcloud/tasks.rb +32 -0
- data/lib/fog/compute/models/vcloud/vdc.rb +56 -0
- data/lib/fog/compute/models/vcloud/vdcs.rb +40 -0
- data/lib/fog/compute/models/virtual_box/server.rb +2 -2
- data/lib/fog/compute/ninefold.rb +3 -3
- data/lib/fog/compute/parsers/aws/cancel_spot_instance_requests.rb +30 -0
- data/lib/fog/compute/parsers/aws/describe_instances.rb +9 -4
- data/lib/fog/compute/parsers/aws/describe_placement_groups.rb +30 -0
- data/lib/fog/compute/parsers/aws/describe_reserved_instances.rb +1 -1
- data/lib/fog/compute/parsers/aws/describe_reserved_instances_offerings.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_spot_price_history.rb +34 -0
- data/lib/fog/compute/parsers/aws/purchase_reserved_instances_offering.rb +24 -0
- data/lib/fog/compute/parsers/aws/run_instances.rb +17 -16
- data/lib/fog/compute/parsers/aws/spot_datafeed_subscription.rb +29 -0
- data/lib/fog/compute/parsers/aws/spot_instance_requests.rb +67 -0
- data/lib/fog/compute/rackspace.rb +6 -5
- data/lib/fog/compute/requests/aws/cancel_spot_instance_requests.rb +34 -0
- data/lib/fog/compute/requests/aws/create_placement_group.rb +34 -0
- data/lib/fog/compute/requests/aws/create_spot_datafeed_subscription.rb +41 -0
- data/lib/fog/compute/requests/aws/delete_placement_group.rb +32 -0
- data/lib/fog/compute/requests/aws/delete_spot_datafeed_subscription.rb +28 -0
- data/lib/fog/compute/requests/aws/describe_placement_groups.rb +35 -0
- data/lib/fog/compute/requests/aws/describe_reserved_instances.rb +14 -0
- data/lib/fog/compute/requests/aws/describe_reserved_instances_offerings.rb +25 -0
- data/lib/fog/compute/requests/aws/describe_spot_datafeed_subscription.rb +35 -0
- data/lib/fog/compute/requests/aws/describe_spot_instance_requests.rb +47 -0
- data/lib/fog/compute/requests/aws/describe_spot_price_history.rb +37 -0
- data/lib/fog/compute/requests/aws/describe_volumes.rb +1 -1
- data/lib/fog/compute/requests/aws/purchase_reserved_instances_offering.rb +63 -0
- data/lib/fog/compute/requests/aws/request_spot_instances.rb +83 -0
- data/lib/fog/compute/requests/aws/run_instances.rb +2 -3
- data/lib/fog/compute/requests/brightbox/activate_console_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/create_api_client.rb +1 -1
- data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +1 -1
- data/lib/fog/compute/requests/brightbox/create_image.rb +1 -1
- data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/create_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +1 -1
- data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +1 -1
- data/lib/fog/compute/requests/brightbox/destroy_image.rb +1 -1
- data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/destroy_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_account.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_api_client.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_image.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_interface.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_server_type.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_user.rb +1 -1
- data/lib/fog/compute/requests/brightbox/get_zone.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_api_clients.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_images.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_server_types.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_servers.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_users.rb +1 -1
- data/lib/fog/compute/requests/brightbox/list_zones.rb +1 -1
- data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +1 -1
- data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +1 -1
- data/lib/fog/compute/requests/brightbox/resize_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/shutdown_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/snapshot_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/start_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/stop_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +1 -1
- data/lib/fog/compute/requests/brightbox/update_account.rb +1 -1
- data/lib/fog/compute/requests/brightbox/update_api_client.rb +1 -1
- data/lib/fog/compute/requests/brightbox/update_image.rb +1 -1
- data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +1 -1
- data/lib/fog/compute/requests/brightbox/update_server.rb +1 -1
- data/lib/fog/compute/requests/brightbox/update_user.rb +1 -1
- data/lib/fog/compute/requests/linode/linode_disk_createfromstackscript.rb +1 -1
- data/lib/fog/compute/requests/rackspace/create_image.rb +1 -1
- data/lib/fog/compute/requests/rackspace/create_server.rb +1 -1
- data/lib/fog/compute/requests/rackspace/server_action.rb +2 -2
- data/lib/fog/compute/requests/rackspace/update_server.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/add_balancer_node.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/clone_server.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/create_server.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/delete_server.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/get_server.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/get_stats.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/list_balancers.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/list_configs.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/list_images.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/list_private_ips.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/list_servers.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/list_templates.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/reboot_server.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/remove_balancer_node.rb +1 -1
- data/lib/fog/compute/requests/storm_on_demand/resize_server.rb +1 -1
- data/lib/fog/compute/requests/vcloud/clone_vapp.rb +40 -0
- data/lib/fog/compute/requests/vcloud/configure_network.rb +43 -0
- data/lib/fog/compute/requests/vcloud/configure_network_ip.rb +46 -0
- data/lib/fog/compute/requests/vcloud/configure_node.rb +38 -0
- data/lib/fog/compute/requests/vcloud/configure_vapp.rb +112 -0
- data/lib/fog/compute/requests/vcloud/configure_vm.rb +247 -0
- data/lib/fog/compute/requests/vcloud/configure_vm_disks.rb +100 -0
- data/lib/fog/compute/requests/vcloud/configure_vm_memory.rb +40 -0
- data/lib/fog/compute/requests/vcloud/configure_vm_name_description.rb +30 -0
- data/lib/fog/compute/requests/vcloud/delete_node.rb +10 -0
- data/lib/fog/compute/requests/vcloud/delete_vapp.rb +10 -0
- data/lib/fog/compute/requests/vcloud/get_catalog.rb +10 -0
- data/lib/fog/compute/requests/vcloud/get_catalog_item.rb +10 -0
- data/lib/fog/compute/requests/vcloud/get_customization_options.rb +10 -0
- data/lib/fog/compute/requests/vcloud/get_network.rb +10 -0
- data/lib/fog/compute/requests/vcloud/get_network_extensions.rb +11 -0
- data/lib/fog/compute/requests/vcloud/get_network_ip.rb +15 -0
- data/lib/fog/compute/requests/vcloud/get_network_ips.rb +15 -0
- data/lib/fog/compute/requests/vcloud/get_organization.rb +11 -0
- data/lib/fog/compute/requests/vcloud/get_task.rb +11 -0
- data/lib/fog/compute/requests/vcloud/get_task_list.rb +11 -0
- data/lib/fog/compute/requests/vcloud/get_vapp.rb +10 -0
- data/lib/fog/compute/requests/vcloud/get_vapp_template.rb +11 -0
- data/lib/fog/compute/requests/vcloud/get_vdc.rb +10 -0
- data/lib/fog/compute/requests/vcloud/get_vm_disks.rb +16 -0
- data/lib/fog/compute/requests/vcloud/get_vm_memory.rb +16 -0
- data/lib/fog/compute/requests/vcloud/instantiate_vapp_template.rb +83 -0
- data/lib/fog/compute/requests/vcloud/login.rb +23 -0
- data/lib/fog/compute/requests/vcloud/power_off.rb +10 -0
- data/lib/fog/compute/requests/vcloud/power_on.rb +11 -0
- data/lib/fog/compute/requests/vcloud/power_reset.rb +11 -0
- data/lib/fog/compute/requests/vcloud/power_shutdown.rb +11 -0
- data/lib/fog/compute/requests/vcloud/undeploy.rb +23 -0
- data/lib/fog/compute/storm_on_demand.rb +2 -2
- data/lib/fog/compute/vcloud.rb +310 -0
- data/lib/fog/core.rb +2 -1
- data/lib/fog/core/attributes.rb +23 -11
- data/lib/fog/core/collection.rb +7 -7
- data/lib/fog/core/credentials.rb +4 -2
- data/lib/fog/core/model.rb +4 -4
- data/lib/fog/core/time.rb +1 -2
- data/lib/fog/core/timeout.rb +11 -0
- data/lib/fog/core/wait_for.rb +2 -2
- data/lib/fog/dns/dnsimple.rb +2 -2
- data/lib/fog/dns/dnsmadeeasy.rb +2 -2
- data/lib/fog/dns/linode.rb +2 -2
- data/lib/fog/dns/requests/dnsimple/create_domain.rb +1 -1
- data/lib/fog/dns/requests/dnsimple/create_record.rb +1 -1
- data/lib/fog/dns/requests/dnsimple/update_record.rb +1 -1
- data/lib/fog/dns/requests/dnsmadeeasy/create_record.rb +1 -1
- data/lib/fog/dns/requests/dnsmadeeasy/create_secondary.rb +1 -1
- data/lib/fog/dns/requests/dnsmadeeasy/update_record.rb +1 -1
- data/lib/fog/dns/requests/dnsmadeeasy/update_secondary.rb +1 -1
- data/lib/fog/providers.rb +1 -0
- data/lib/fog/providers/aws.rb +15 -2
- data/lib/fog/providers/ninefold.rb +1 -0
- data/lib/fog/providers/rackspace.rb +4 -3
- data/lib/fog/providers/vcloud.rb +11 -0
- data/lib/fog/storage.rb +9 -6
- data/lib/fog/storage/aws.rb +18 -1
- data/lib/fog/storage/google.rb +19 -1
- data/lib/fog/storage/models/aws/file.rb +3 -3
- data/lib/fog/storage/models/aws/files.rb +9 -2
- data/lib/fog/storage/models/google/files.rb +9 -2
- data/lib/fog/storage/models/ninefold/directories.rb +48 -0
- data/lib/fog/storage/models/ninefold/directory.rb +53 -0
- data/lib/fog/storage/models/ninefold/file.rb +99 -0
- data/lib/fog/storage/models/ninefold/files.rb +72 -0
- data/lib/fog/storage/models/rackspace/directory.rb +7 -2
- data/lib/fog/storage/ninefold.rb +149 -0
- data/lib/fog/storage/rackspace.rb +8 -2
- data/lib/fog/storage/requests/aws/get_bucket_policy.rb +1 -1
- data/lib/fog/storage/requests/aws/get_object.rb +6 -2
- data/lib/fog/storage/requests/aws/get_object_http_url.rb +51 -0
- data/lib/fog/storage/requests/aws/get_object_https_url.rb +51 -0
- data/lib/fog/storage/requests/aws/get_object_url.rb +4 -24
- data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +1 -1
- data/lib/fog/storage/requests/aws/put_bucket_policy.rb +1 -1
- data/lib/fog/storage/requests/google/get_object_http_url.rb +51 -0
- data/lib/fog/storage/requests/google/get_object_https_url.rb +51 -0
- data/lib/fog/storage/requests/google/get_object_url.rb +8 -25
- data/lib/fog/storage/requests/ninefold/delete_namespace.rb +19 -0
- data/lib/fog/storage/requests/ninefold/get_namespace.rb +20 -0
- data/lib/fog/storage/requests/ninefold/post_namespace.rb +20 -0
- data/lib/fog/storage/requests/ninefold/put_namespace.rb +20 -0
- data/lib/fog/storage/requests/rackspace/put_object.rb +3 -0
- data/lib/fog/storage/requests/rackspace/put_object_manifest.rb +25 -0
- data/tests/aws/models/auto_scaling/activities_tests.rb +6 -0
- data/tests/aws/models/auto_scaling/configuration_test.rb +13 -0
- data/tests/aws/models/auto_scaling/configurations_tests.rb +11 -0
- data/tests/aws/models/auto_scaling/helper.rb +0 -0
- data/tests/aws/models/auto_scaling/instances_tests.rb +6 -0
- data/tests/aws/models/cloud_watch/metric_statistics_tests.rb +51 -0
- data/tests/aws/models/cloud_watch/metrics_tests.rb +17 -0
- data/tests/aws/{requests → models}/elb/model_tests.rb +82 -18
- data/tests/aws/models/rds/security_group_tests.rb +1 -1
- data/tests/aws/requests/auto_scaling/auto_scaling_tests.rb +80 -0
- data/tests/aws/requests/auto_scaling/helper.rb +185 -0
- data/tests/aws/requests/auto_scaling/model_tests.rb +235 -0
- data/tests/aws/requests/cloud_formation/stack_tests.rb +1 -1
- data/tests/aws/requests/cloud_watch/get_metric_statistics_tests.rb +28 -0
- data/tests/aws/requests/cloud_watch/list_metrics_test.rb +64 -0
- data/tests/aws/requests/cloud_watch/put_metric_data_tests.rb +36 -0
- data/tests/aws/requests/elb/listener_tests.rb +50 -0
- data/tests/aws/requests/elb/load_balancer_tests.rb +23 -44
- data/tests/aws/requests/elb/policy_tests.rb +41 -0
- data/tests/aws/requests/iam/helper.rb +29 -0
- data/tests/aws/requests/iam/login_profile_tests.rb +2 -2
- data/tests/aws/requests/iam/server_certificate_tests.rb +39 -6
- data/tests/aws/requests/rds/helper.rb +1 -0
- data/tests/aws/requests/simpledb/attributes_tests.rb +10 -15
- data/tests/aws/requests/sns/helper.rb +9 -0
- data/tests/aws/requests/sns/subscription_tests.rb +86 -0
- data/tests/aws/requests/sns/topic_tests.rb +50 -0
- data/tests/aws/requests/sqs/helper.rb +15 -0
- data/tests/aws/requests/sqs/message_tests.rb +57 -0
- data/tests/aws/requests/sqs/queue_tests.rb +55 -0
- data/tests/aws/signed_params_tests.rb +3 -1
- data/tests/compute/models/aws/volume_tests.rb +13 -0
- data/tests/compute/models/vcloud/helper.rb +25 -0
- data/tests/compute/models/vcloud/servers_tests.rb +95 -0
- data/tests/compute/requests/aws/address_tests.rb +1 -1
- data/tests/compute/requests/aws/instance_tests.rb +65 -4
- data/tests/compute/requests/aws/placement_group_tests.rb +48 -0
- data/tests/compute/requests/aws/spot_datafeed_subscription_tests.rb +47 -0
- data/tests/compute/requests/aws/spot_instance_tests.rb +53 -0
- data/tests/compute/requests/aws/spot_price_history_tests.rb +24 -0
- data/tests/compute/requests/aws/volume_tests.rb +4 -0
- data/tests/compute/requests/brightbox/helper.rb +2 -1
- data/tests/compute/requests/brightbox/interface_tests.rb +4 -4
- data/tests/compute/requests/ninefold/helper.rb +1 -1
- data/tests/compute/requests/vcloud/disk_configure_tests.rb +114 -0
- data/tests/compute/requests/voxel/server_tests.rb +2 -2
- data/tests/core/attribute_tests.rb +10 -1
- data/tests/core/credential_tests.rb +6 -0
- data/tests/core/timeout_tests.rb +10 -0
- data/tests/helpers/collection_helper.rb +4 -1
- data/tests/helpers/formats_helper.rb +1 -1
- data/tests/helpers/mock_helper.rb +5 -0
- data/tests/storage/helper.rb +4 -1
- data/tests/storage/models/ninefold/file_update_tests.rb +19 -0
- data/tests/storage/models/ninefold/nested_directories_tests.rb +23 -0
- data/tests/storage/requests/aws/multipart_upload_tests.rb +2 -5
- data/tests/storage/requests/rackspace/large_object_tests.rb +47 -0
- metadata +366 -105
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class Ninefold
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
def put_namespace(namespace = '', options = {})
|
|
7
|
+
options = options.reject {|key, value| value.nil?}
|
|
8
|
+
request({
|
|
9
|
+
:expects => 200,
|
|
10
|
+
:method => 'PUT',
|
|
11
|
+
:path => "namespace/" + namespace,
|
|
12
|
+
:query => {},
|
|
13
|
+
:parse => true
|
|
14
|
+
}.merge(options))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -7,6 +7,9 @@ module Fog
|
|
|
7
7
|
#
|
|
8
8
|
# ==== Parameters
|
|
9
9
|
# * container<~String> - Name for container, should be < 256 bytes and must not contain '/'
|
|
10
|
+
# * object<~String> - Name for object
|
|
11
|
+
# * data<~String|File> - data to upload
|
|
12
|
+
# * options<~Hash> - config headers for object. Defaults to {}.
|
|
10
13
|
#
|
|
11
14
|
def put_object(container, object, data, options = {})
|
|
12
15
|
data = Fog::Storage.parse_data(data)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class Rackspace
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
# Create a new object
|
|
7
|
+
#
|
|
8
|
+
# ==== Parameters
|
|
9
|
+
# * container<~String> - Name for container, should be < 256 bytes and must not contain '/'
|
|
10
|
+
# * object<~String> - Name for object
|
|
11
|
+
#
|
|
12
|
+
def put_object_manifest(container, object)
|
|
13
|
+
path = "#{URI.escape(container)}/#{URI.escape(object)}"
|
|
14
|
+
request(
|
|
15
|
+
:expects => 201,
|
|
16
|
+
:headers => {'X-Object-Manifest' => path},
|
|
17
|
+
:method => 'PUT',
|
|
18
|
+
:path => path
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Shindo.tests('AWS::AutoScaling | configuration', ['aws', 'auto_scaling_m']) do
|
|
2
|
+
|
|
3
|
+
params = {
|
|
4
|
+
:id => uniq_id,
|
|
5
|
+
:image_id => 'ami-8c1fece5',
|
|
6
|
+
:instance_type => 't1.micro'
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
model_tests(AWS[:auto_scaling].configurations, params, false) do
|
|
10
|
+
@instance.wait_for { ready? }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Shindo.tests('AWS::AutoScaling | configurations', ['aws', 'auto_scaling_m']) do
|
|
2
|
+
|
|
3
|
+
params = {
|
|
4
|
+
:id => uniq_id,
|
|
5
|
+
:image_id => 'ami-8c1fece5',
|
|
6
|
+
:instance_type => 't1.micro'
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
collection_tests(AWS[:auto_scaling].configurations, params, false)
|
|
10
|
+
|
|
11
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
Shindo.tests("AWS::CloudWatch | metric_statistics", ['aws', 'cloudwatch']) do
|
|
2
|
+
|
|
3
|
+
tests('success') do
|
|
4
|
+
pending if Fog.mocking?
|
|
5
|
+
|
|
6
|
+
instanceId = 'i-420c352f'
|
|
7
|
+
metricName = 'DiskReadBytes'
|
|
8
|
+
namespace = 'AWS/EC2'
|
|
9
|
+
startTime = (Time.now-600).iso8601
|
|
10
|
+
endTime = Time.now.iso8601
|
|
11
|
+
period = 60
|
|
12
|
+
statisticTypes = ['Minimum','Maximum','Sum','SampleCount','Average']
|
|
13
|
+
|
|
14
|
+
tests("#all").succeeds do
|
|
15
|
+
@statistics = AWS[:cloud_watch].metric_statistics.all({'Statistics' => statisticTypes, 'StartTime' => startTime, 'EndTime' => endTime, 'Period' => period, 'MetricName' => metricName, 'Namespace' => namespace, 'Dimensions' => [{'Name' => 'InstanceId', 'Value' => instanceId}]})
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
tests("#all_not_empty").returns(true) do
|
|
19
|
+
@statistics.length > 0
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
new_attributes = {
|
|
23
|
+
:namespace => 'Custom/Test',
|
|
24
|
+
:metric_name => 'ModelTest',
|
|
25
|
+
:value => 9,
|
|
26
|
+
:unit => 'None'
|
|
27
|
+
}
|
|
28
|
+
tests('#new').returns(new_attributes) do
|
|
29
|
+
AWS[:cloud_watch].metric_statistics.new(new_attributes).attributes
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
tests('#create').returns(new_attributes) do
|
|
33
|
+
AWS[:cloud_watch].metric_statistics.create(new_attributes).attributes
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
stats_set_attributes = {
|
|
37
|
+
:namespace => 'Custom/Test',
|
|
38
|
+
:metric_name => 'ModelTest',
|
|
39
|
+
:minimum => 0,
|
|
40
|
+
:maximum => 4,
|
|
41
|
+
:sum => 10,
|
|
42
|
+
:sample_count => 5,
|
|
43
|
+
:average => 2,
|
|
44
|
+
:unit => 'None'
|
|
45
|
+
}
|
|
46
|
+
tests('#create_stats_set').returns(stats_set_attributes) do
|
|
47
|
+
AWS[:cloud_watch].metric_statistics.create(stats_set_attributes).attributes
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Shindo.tests("AWS::CloudWatch | metrics", ['aws', 'cloudwatch']) do
|
|
2
|
+
|
|
3
|
+
tests('success') do
|
|
4
|
+
pending # FIXME: the hardcoded instance id won't be available
|
|
5
|
+
tests("#all").succeeds do
|
|
6
|
+
AWS[:cloud_watch].metrics.all
|
|
7
|
+
end
|
|
8
|
+
instanceId = 'i-fd713391'
|
|
9
|
+
metricName = 'CPUUtilization'
|
|
10
|
+
namespace = 'AWS/EC2'
|
|
11
|
+
tests("#get").returns({:dimensions=>[{"Name"=>"InstanceId", "Value"=>instanceId}], :name=>metricName, :namespace=>namespace}) do
|
|
12
|
+
AWS[:cloud_watch].metrics.get(namespace, metricName, {'InstanceId' => instanceId}).attributes
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
@@ -1,23 +1,88 @@
|
|
|
1
1
|
Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
2
|
-
|
|
2
|
+
@availability_zones = Fog::Compute[:aws].describe_availability_zones('state' => 'available').body['availabilityZoneInfo'].collect{ |az| az['zoneName'] }
|
|
3
|
+
@key_name = 'fog-test-model'
|
|
3
4
|
|
|
4
5
|
tests('success') do
|
|
5
|
-
pending if Fog.mocking?
|
|
6
|
-
|
|
7
6
|
tests('load_balancers') do
|
|
8
7
|
tests('getting a missing elb') do
|
|
9
8
|
returns(nil) { AWS[:elb].load_balancers.get('no-such-elb') }
|
|
10
9
|
end
|
|
11
10
|
end
|
|
12
11
|
|
|
12
|
+
tests('listeners') do
|
|
13
|
+
tests("default attributes") do
|
|
14
|
+
listener = AWS[:elb].listeners.new
|
|
15
|
+
tests('instance_port is 80').returns(80) { listener.instance_port }
|
|
16
|
+
tests('lb_port is 80').returns(80) { listener.lb_port }
|
|
17
|
+
tests('protocol is HTTP').returns('HTTP') { listener.protocol }
|
|
18
|
+
tests('policy_names is empty').returns([]) { listener.policy_names }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
tests("specifying attributes") do
|
|
22
|
+
attributes = {:instance_port => 2000, :lb_port => 2001, :protocol => 'SSL', :policy_names => ['fake'] }
|
|
23
|
+
listener = AWS[:elb].listeners.new(attributes)
|
|
24
|
+
tests('instance_port is 2000').returns(2000) { listener.instance_port }
|
|
25
|
+
tests('lb_port is 2001').returns(2001) { listener.lb_port }
|
|
26
|
+
tests('protocol is SSL').returns('SSL') { listener.protocol }
|
|
27
|
+
tests('policy_names is [ fake ]').returns(['fake']) { listener.policy_names }
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
13
31
|
elb = nil
|
|
14
32
|
elb_id = 'fog-test'
|
|
15
33
|
|
|
16
34
|
tests('create') do
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
35
|
+
tests('without availability zones') do
|
|
36
|
+
elb = AWS[:elb].load_balancers.create(:id => elb_id)
|
|
37
|
+
tests("availability zones are correct").returns(@availability_zones.sort) { elb.availability_zones.sort }
|
|
38
|
+
tests("dns names is set").returns(true) { elb.dns_name.is_a?(String) }
|
|
39
|
+
tests("created_at is set").returns(true) { Time === elb.created_at }
|
|
40
|
+
tests("policies is empty").returns([]) { elb.policies }
|
|
41
|
+
tests("default listener") do
|
|
42
|
+
tests("1 listener").returns(1) { elb.listeners.size }
|
|
43
|
+
tests("params").returns(AWS[:elb].listeners.new.to_params) { elb.listeners.first.to_params }
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
tests('with availability zones') do
|
|
48
|
+
azs = @availability_zones[1..-1]
|
|
49
|
+
elb2 = AWS[:elb].load_balancers.create(:id => "#{elb_id}-2", :availability_zones => azs)
|
|
50
|
+
tests("availability zones are correct").returns(azs.sort) { elb2.availability_zones.sort }
|
|
51
|
+
elb2.destroy
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Need to sleep here for IAM changes to propgate
|
|
55
|
+
tests('with ListenerDescriptions') do
|
|
56
|
+
@certificate = AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT_PUBLIC_KEY, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
|
|
57
|
+
sleep(8) unless Fog.mocking?
|
|
58
|
+
listeners = [{
|
|
59
|
+
'Listener' => {
|
|
60
|
+
'LoadBalancerPort' => 2030, 'InstancePort' => 2030, 'Protocol' => 'HTTP'
|
|
61
|
+
},
|
|
62
|
+
'PolicyNames' => []
|
|
63
|
+
}, {
|
|
64
|
+
'Listener' => {
|
|
65
|
+
'LoadBalancerPort' => 443, 'InstancePort' => 443, 'Protocol' => 'HTTPS',
|
|
66
|
+
'SSLCertificateId' => @certificate['Arn']
|
|
67
|
+
},
|
|
68
|
+
'PolicyNames' => []
|
|
69
|
+
}]
|
|
70
|
+
elb3 = AWS[:elb].load_balancers.create(:id => "#{elb_id}-3", 'ListenerDescriptions' => listeners)
|
|
71
|
+
tests('there are 2 listeners').returns(2) { elb3.listeners.count }
|
|
72
|
+
tests('instance_port is 2030').returns(2030) { elb3.listeners.first.instance_port }
|
|
73
|
+
tests('lb_port is 2030').returns(2030) { elb3.listeners.first.lb_port }
|
|
74
|
+
tests('protocol is HTTP').returns('HTTP') { elb3.listeners.first.protocol }
|
|
75
|
+
tests('protocol is HTTPS').returns('HTTPS') { elb3.listeners.last.protocol }
|
|
76
|
+
elb3.destroy
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
tests('with invalid Server Cert ARN').raises(Fog::AWS::IAM::NotFound) do
|
|
80
|
+
listeners = [{
|
|
81
|
+
'Listener' => {
|
|
82
|
+
'LoadBalancerPort' => 443, 'InstancePort' => 80, 'Protocol' => 'HTTPS', "SSLCertificateId" => "fakecert"}
|
|
83
|
+
}]
|
|
84
|
+
AWS[:elb].load_balancers.create(:id => "#{elb_id}-4", "ListenerDescriptions" => listeners)
|
|
85
|
+
end
|
|
21
86
|
end
|
|
22
87
|
|
|
23
88
|
tests('all') do
|
|
@@ -26,11 +91,11 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
|
26
91
|
end
|
|
27
92
|
|
|
28
93
|
tests('get') do
|
|
29
|
-
|
|
30
|
-
tests('ids match').returns(elb_id) {
|
|
94
|
+
elb_get = AWS[:elb].load_balancers.get(elb_id)
|
|
95
|
+
tests('ids match').returns(elb_id) { elb_get.id }
|
|
31
96
|
end
|
|
32
97
|
|
|
33
|
-
tests('
|
|
98
|
+
tests('creating a duplicate elb') do
|
|
34
99
|
raises(Fog::AWS::ELB::IdentifierTaken) do
|
|
35
100
|
AWS[:elb].load_balancers.create(:id => elb_id, :availability_zones => ['us-east-1d'])
|
|
36
101
|
end
|
|
@@ -44,7 +109,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
|
44
109
|
raises(Fog::AWS::ELB::InvalidInstance) { elb.deregister_instances('i-00000000') }
|
|
45
110
|
end
|
|
46
111
|
|
|
47
|
-
server = Compute[:aws].servers.create
|
|
112
|
+
server = Fog::Compute[:aws].servers.create
|
|
48
113
|
tests('register instance') do
|
|
49
114
|
begin
|
|
50
115
|
elb.register_instances(server.id)
|
|
@@ -74,13 +139,13 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
|
74
139
|
server.destroy
|
|
75
140
|
|
|
76
141
|
tests('disable_availability_zones') do
|
|
77
|
-
elb.disable_availability_zones(
|
|
78
|
-
returns(
|
|
142
|
+
elb.disable_availability_zones(@availability_zones[1..-1])
|
|
143
|
+
returns(@availability_zones[0..0]) { elb.availability_zones.sort }
|
|
79
144
|
end
|
|
80
145
|
|
|
81
146
|
tests('enable_availability_zones') do
|
|
82
|
-
elb.enable_availability_zones(
|
|
83
|
-
returns(
|
|
147
|
+
elb.enable_availability_zones(@availability_zones[1..-1])
|
|
148
|
+
returns(@availability_zones) { elb.availability_zones.sort }
|
|
84
149
|
end
|
|
85
150
|
|
|
86
151
|
tests('default health check') do
|
|
@@ -107,13 +172,11 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
|
107
172
|
end
|
|
108
173
|
|
|
109
174
|
tests('listeners') do
|
|
110
|
-
default_listener_description = [{"Listener"=>{"InstancePort"=>80, "Protocol"=>"HTTP", "LoadBalancerPort"=>80}, "PolicyNames"=>[]}]
|
|
111
175
|
tests('default') do
|
|
112
176
|
returns(1) { elb.listeners.size }
|
|
113
177
|
|
|
114
178
|
listener = elb.listeners.first
|
|
115
179
|
returns([80,80,'HTTP', []]) { [listener.instance_port, listener.lb_port, listener.protocol, listener.policy_names] }
|
|
116
|
-
|
|
117
180
|
end
|
|
118
181
|
|
|
119
182
|
tests('#get') do
|
|
@@ -182,6 +245,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
|
182
245
|
tests('destroy') do
|
|
183
246
|
elb.destroy
|
|
184
247
|
end
|
|
185
|
-
end
|
|
186
248
|
|
|
249
|
+
AWS[:iam].delete_server_certificate(@key_name)
|
|
250
|
+
end
|
|
187
251
|
end
|
|
@@ -8,7 +8,7 @@ Shindo.tests("AWS::RDS | security_group", ['aws', 'rds']) do
|
|
|
8
8
|
tests("#description").returns('fog test') { @instance.description }
|
|
9
9
|
|
|
10
10
|
tests("#authorize_ec2_security_group").succeeds do
|
|
11
|
-
@ec2_sec_group = Compute[:aws].security_groups.create(:name => 'fog-test', :description => 'fog test')
|
|
11
|
+
@ec2_sec_group = Fog::Compute[:aws].security_groups.create(:name => 'fog-test', :description => 'fog test')
|
|
12
12
|
|
|
13
13
|
@instance.authorize_ec2_security_group(@ec2_sec_group.name)
|
|
14
14
|
returns('authorizing') do
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
Shindo.tests('AWS::AutoScaling | auto_scaling_tests', ['aws', 'auto_scaling']) do
|
|
2
|
+
@asg_name = 'fog-test-asg'
|
|
3
|
+
@lc_name = 'fog-test-lc'
|
|
4
|
+
|
|
5
|
+
tests('success') do
|
|
6
|
+
pending if Fog.mocking?
|
|
7
|
+
|
|
8
|
+
tests("#describe_adjustment_types").formats(AWS::AutoScaling::Formats::DESCRIBE_ADJUSTMENT_TYPES) do
|
|
9
|
+
AWS[:auto_scaling].describe_adjustment_types.body
|
|
10
|
+
end
|
|
11
|
+
tests("#describe_metric_collection_types").formats(AWS::AutoScaling::Formats::DESCRIBE_METRIC_COLLECTION_TYPES) do
|
|
12
|
+
AWS[:auto_scaling].describe_metric_collection_types.body
|
|
13
|
+
end
|
|
14
|
+
tests("#describe_scaling_process_types").formats(AWS::AutoScaling::Formats::DESCRIBE_SCALING_PROCESS_TYPES) do
|
|
15
|
+
AWS[:auto_scaling].describe_scaling_process_types.body
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
tests("#create_launch_configuration").formats(AWS::AutoScaling::Formats::BASIC) do
|
|
19
|
+
image_id = 'ami-8c1fece5'
|
|
20
|
+
instance_type = 't1.micro'
|
|
21
|
+
#listeners = [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'http'}]
|
|
22
|
+
AWS[:auto_scaling].create_launch_configuration(image_id, instance_type, @lc_name).body
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
tests("#describe_launch_configurations").formats(AWS::AutoScaling::Formats::DESCRIBE_LAUNCH_CONFIGURATIONS) do
|
|
26
|
+
AWS[:auto_scaling].describe_launch_configurations().body
|
|
27
|
+
end
|
|
28
|
+
tests("#describe_launch_configurations").formats(AWS::AutoScaling::Formats::DESCRIBE_LAUNCH_CONFIGURATIONS) do
|
|
29
|
+
AWS[:auto_scaling].describe_launch_configurations('LaunchConfigurationNames' => @lc_name).body
|
|
30
|
+
end
|
|
31
|
+
tests("#describe_launch_configurations").formats(AWS::AutoScaling::Formats::DESCRIBE_LAUNCH_CONFIGURATIONS) do
|
|
32
|
+
AWS[:auto_scaling].describe_launch_configurations('LaunchConfigurationNames' => [@lc_name]).body
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
tests("#create_auto_scaling_group").formats(AWS::AutoScaling::Formats::BASIC) do
|
|
36
|
+
zones = ['us-east-1d']
|
|
37
|
+
max_size = 0
|
|
38
|
+
min_size = 0
|
|
39
|
+
AWS[:auto_scaling].create_auto_scaling_group(@asg_name, zones, @lc_name, max_size, min_size).body
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
tests("#describe_auto_scaling_groups").formats(AWS::AutoScaling::Formats::DESCRIBE_AUTO_SCALING_GROUPS) do
|
|
43
|
+
AWS[:auto_scaling].describe_auto_scaling_groups().body
|
|
44
|
+
end
|
|
45
|
+
tests("#describe_auto_scaling_groups").formats(AWS::AutoScaling::Formats::DESCRIBE_AUTO_SCALING_GROUPS) do
|
|
46
|
+
AWS[:auto_scaling].describe_auto_scaling_groups('AutoScalingGroupNames' => @asg_name).body
|
|
47
|
+
end
|
|
48
|
+
tests("#describe_auto_scaling_groups").formats(AWS::AutoScaling::Formats::DESCRIBE_AUTO_SCALING_GROUPS) do
|
|
49
|
+
AWS[:auto_scaling].describe_auto_scaling_groups('AutoScalingGroupNames' => [@asg_name]).body
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
tests("#describe_auto_scaling_instances").formats(AWS::AutoScaling::Formats::DESCRIBE_AUTO_SCALING_INSTANCES) do
|
|
53
|
+
AWS[:auto_scaling].describe_auto_scaling_instances().body
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
tests("#describe_scaling_activities").formats(AWS::AutoScaling::Formats::DESCRIBE_SCALING_ACTIVITIES) do
|
|
57
|
+
AWS[:auto_scaling].describe_scaling_activities().body
|
|
58
|
+
end
|
|
59
|
+
tests("#describe_scaling_activities").formats(AWS::AutoScaling::Formats::DESCRIBE_SCALING_ACTIVITIES) do
|
|
60
|
+
AWS[:auto_scaling].describe_scaling_activities('ActivityIds' => '1').body
|
|
61
|
+
end
|
|
62
|
+
tests("#describe_scaling_activities").formats(AWS::AutoScaling::Formats::DESCRIBE_SCALING_ACTIVITIES) do
|
|
63
|
+
AWS[:auto_scaling].describe_scaling_activities('ActivityIds' => ['1', '2']).body
|
|
64
|
+
end
|
|
65
|
+
tests("#describe_scaling_activities").formats(AWS::AutoScaling::Formats::DESCRIBE_SCALING_ACTIVITIES) do
|
|
66
|
+
AWS[:auto_scaling].describe_scaling_activities('AutoScalingGroupName' => @asg_name).body
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
tests("#set_desired_capacity").formats(AWS::AutoScaling::Formats::BASIC) do
|
|
70
|
+
desired_capacity = 0
|
|
71
|
+
AWS[:auto_scaling].set_desired_capacity(@asg_name, desired_capacity).body
|
|
72
|
+
end
|
|
73
|
+
tests("#delete_auto_scaling_group").formats(AWS::AutoScaling::Formats::BASIC) do
|
|
74
|
+
AWS[:auto_scaling].delete_auto_scaling_group(@asg_name).body
|
|
75
|
+
end
|
|
76
|
+
tests("#delete_launch_configuration").formats(AWS::AutoScaling::Formats::BASIC) do
|
|
77
|
+
AWS[:auto_scaling].delete_launch_configuration(@lc_name).body
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
class AWS
|
|
2
|
+
module AutoScaling
|
|
3
|
+
module Formats
|
|
4
|
+
|
|
5
|
+
BASIC = {
|
|
6
|
+
'ResponseMetadata' => {'RequestId' => String}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
PAGINATED = {
|
|
10
|
+
'NextToken' => Fog::Nullable::String
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
ACTIVITY = {
|
|
14
|
+
'ActivityId' => String,
|
|
15
|
+
'AutoScalingGroupName' => String,
|
|
16
|
+
'Cause' => String,
|
|
17
|
+
'Description' => String,
|
|
18
|
+
'EndTime' => Time,
|
|
19
|
+
'Progress' => Integer,
|
|
20
|
+
'StartTime' => Time,
|
|
21
|
+
'StatusCode' => String,
|
|
22
|
+
'StatusMessage' => String
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
ALARM = {
|
|
26
|
+
'AlarmARN' => String,
|
|
27
|
+
'AlarmName' => String
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
BLOCK_DEVICE_MAPPING = {
|
|
31
|
+
'DeviceName' => String,
|
|
32
|
+
'Ebs' => {'SnapshotId' => String, 'VolumeSize' => Integer},
|
|
33
|
+
'VirtualName' => String
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
ENABLED_METRIC = {
|
|
37
|
+
'Granularity' => Array,
|
|
38
|
+
'Metric' => Array
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
INSTANCE = {
|
|
42
|
+
'AvailabilityZone' => String,
|
|
43
|
+
'HealthStatus' => String,
|
|
44
|
+
'InstanceId' => String,
|
|
45
|
+
'LaunchConfigurationName' => String,
|
|
46
|
+
'LifecycleState' => String
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
SCHEDULED_UPDATE_GROUP_ACTION = {
|
|
50
|
+
'AutoScalingGroupName' => String,
|
|
51
|
+
'DesiredCapacity' => Integer,
|
|
52
|
+
'MaxSize' => Integer,
|
|
53
|
+
'MinSize' => Integer,
|
|
54
|
+
'ScheduledActionARN' => String,
|
|
55
|
+
'ScheduledActionName' => String,
|
|
56
|
+
'Time' => Time
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
PROCESS_TYPE = {
|
|
60
|
+
'ProcessName' => String
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
SUSPENDED_PROCESS = PROCESS_TYPE.merge({
|
|
64
|
+
'SuspensionReason' => String
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
AUTO_SCALING_GROUP = {
|
|
68
|
+
'AutoScalingGroupARN' => String,
|
|
69
|
+
'AutoScalingGroupName' => String,
|
|
70
|
+
'AvailabilityZones' => Array,
|
|
71
|
+
'CreatedTime' => Time,
|
|
72
|
+
'DefaultCooldown' => Integer,
|
|
73
|
+
'DesiredCapacity' => Integer,
|
|
74
|
+
'EnabledMetrics' => [ENABLED_METRIC],
|
|
75
|
+
'HealthCheckGracePeriod' => Integer,
|
|
76
|
+
'HealthCheckType' => String,
|
|
77
|
+
'Instances' => [INSTANCE],
|
|
78
|
+
'LaunchConfigurationName' => String,
|
|
79
|
+
'LoadBalancerNames' => Array,
|
|
80
|
+
'MaxSize' => Integer,
|
|
81
|
+
'MinSize' => Integer,
|
|
82
|
+
'PlacementGroup' => Fog::Nullable::String,
|
|
83
|
+
'SuspendedProcesses' => [SUSPENDED_PROCESS],
|
|
84
|
+
'VPCZoneIdentifier' => Fog::Nullable::String
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
AUTO_SCALING_INSTANCE_DETAILS = INSTANCE.merge({
|
|
88
|
+
'AutoScalingGroupName' => String
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
LAUNCH_CONFIGURATION = {
|
|
92
|
+
'BlockDeviceMappings' => [BLOCK_DEVICE_MAPPING],
|
|
93
|
+
'CreatedTime' => Time,
|
|
94
|
+
'ImageId' => String,
|
|
95
|
+
'InstanceMonitoring' => {'Enabled' => Fog::Boolean},
|
|
96
|
+
'InstanceType' => String,
|
|
97
|
+
'KernelId' => Fog::Nullable::String,
|
|
98
|
+
'KeyName' => Fog::Nullable::String,
|
|
99
|
+
'LaunchConfigurationARN' => String,
|
|
100
|
+
'LaunchConfigurationName' => String,
|
|
101
|
+
'RamdiskId' => Fog::Nullable::String,
|
|
102
|
+
'SecurityGroups' => Array,
|
|
103
|
+
'UserData' => Fog::Nullable::String
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
SCALING_POLICY = {
|
|
107
|
+
'AdjustmentType' => String,
|
|
108
|
+
'Alarms' => [ALARM],
|
|
109
|
+
'AutoScalingGroupName' => String,
|
|
110
|
+
'Cooldown' => Integer,
|
|
111
|
+
'PolicyARN' => String,
|
|
112
|
+
'PolicyName' => String,
|
|
113
|
+
'ScalingAdjustment' => Integer
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
DESCRIBE_ADJUSTMENT_TYPES = BASIC.merge({
|
|
117
|
+
'DescribeAdjustmentTypesResult' => {
|
|
118
|
+
'AdjustmentTypes' => [{'AdjustmentType' => String}]
|
|
119
|
+
}
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
DESCRIBE_AUTO_SCALING_GROUPS = BASIC.merge({
|
|
123
|
+
'DescribeAutoScalingGroupsResult' => PAGINATED.merge({
|
|
124
|
+
'AutoScalingGroups' => [AUTO_SCALING_GROUP],
|
|
125
|
+
})
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
DESCRIBE_AUTO_SCALING_INSTANCES = BASIC.merge({
|
|
129
|
+
'DescribeAutoScalingInstancesResult' => PAGINATED.merge({
|
|
130
|
+
'AutoScalingInstances' => [AUTO_SCALING_INSTANCE_DETAILS],
|
|
131
|
+
})
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
DESCRIBE_LAUNCH_CONFIGURATIONS = BASIC.merge({
|
|
135
|
+
'DescribeLaunchConfigurationsResult' => PAGINATED.merge({
|
|
136
|
+
'LaunchConfigurations' => [LAUNCH_CONFIGURATION],
|
|
137
|
+
})
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
DESCRIBE_METRIC_COLLECTION_TYPES = BASIC.merge({
|
|
141
|
+
'DescribeMetricCollectionTypesResult' => {
|
|
142
|
+
'Granularities' => [{'Granularity' => String}],
|
|
143
|
+
'Metrics' => [{'Metric' => String}]
|
|
144
|
+
}
|
|
145
|
+
})
|
|
146
|
+
|
|
147
|
+
DESCRIBE_POLICIES = BASIC.merge({
|
|
148
|
+
'DescribePoliciesResult' => PAGINATED.merge({
|
|
149
|
+
'ScalingPolicies' => [SCALING_POLICY]
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
DESCRIBE_SCALING_ACTIVITIES = BASIC.merge({
|
|
154
|
+
'DescribeScalingActivitiesResult' => PAGINATED.merge({
|
|
155
|
+
'Activities' => [ACTIVITY],
|
|
156
|
+
})
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
DESCRIBE_SCALING_PROCESS_TYPES = BASIC.merge({
|
|
160
|
+
'DescribeScalingProcessTypesResult' => {
|
|
161
|
+
'Processes' => [PROCESS_TYPE]
|
|
162
|
+
}
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
DESCRIBE_SCHEDULED_ACTIONS = BASIC.merge({
|
|
166
|
+
'DescribeScheduledActionsResult' => PAGINATED.merge({
|
|
167
|
+
'ScheduledUpdateGroupActions' => [SCHEDULED_UPDATE_GROUP_ACTION]
|
|
168
|
+
})
|
|
169
|
+
})
|
|
170
|
+
|
|
171
|
+
PUT_SCALING_POLICY = BASIC.merge({
|
|
172
|
+
'PutScalingPolicyResult' => {
|
|
173
|
+
'PolicyARN' => String
|
|
174
|
+
}
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
TERMINATE_INSTANCE_IN_AUTO_SCALING_GROUP = BASIC.merge({
|
|
178
|
+
'TerminateInstanceInAutoScalingGroupResult' => {
|
|
179
|
+
'Activity' => [ACTIVITY]
|
|
180
|
+
}
|
|
181
|
+
})
|
|
182
|
+
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
end
|