fog 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +6 -0
- data/README.rdoc +1 -1
- data/Rakefile +6 -19
- data/changelog.txt +614 -2
- data/docs/_layouts/default.html +1 -1
- data/docs/compute/index.markdown +15 -1
- data/docs/index.markdown +2 -2
- data/docs/storage/index.markdown +4 -4
- data/fog.gemspec +7 -4
- data/lib/fog/aws/auto_scaling.rb +2 -17
- data/lib/fog/aws/beanstalk.rb +140 -0
- data/lib/fog/aws/cloud_formation.rb +1 -16
- data/lib/fog/aws/cloud_watch.rb +2 -17
- data/lib/fog/aws/compute.rb +22 -21
- data/lib/fog/aws/dns.rb +2 -2
- data/lib/fog/aws/dynamodb.rb +162 -0
- data/lib/fog/aws/elasticache.rb +1 -7
- data/lib/fog/aws/elb/policy_types.rb +35 -0
- data/lib/fog/aws/elb.rb +34 -24
- data/lib/fog/aws/emr.rb +5 -4
- data/lib/fog/aws/iam.rb +16 -1
- data/lib/fog/aws/models/auto_scaling/activity.rb +1 -1
- data/lib/fog/aws/models/auto_scaling/group.rb +2 -2
- data/lib/fog/aws/models/beanstalk/application.rb +62 -0
- data/lib/fog/aws/models/beanstalk/applications.rb +25 -0
- data/lib/fog/aws/models/beanstalk/environment.rb +129 -0
- data/lib/fog/aws/models/beanstalk/environments.rb +29 -0
- data/lib/fog/aws/models/beanstalk/event.rb +20 -0
- data/lib/fog/aws/models/beanstalk/events.rb +19 -0
- data/lib/fog/aws/models/beanstalk/template.rb +62 -0
- data/lib/fog/aws/models/beanstalk/templates.rb +70 -0
- data/lib/fog/aws/models/beanstalk/version.rb +79 -0
- data/lib/fog/aws/models/beanstalk/versions.rb +31 -0
- data/lib/fog/aws/models/cloud_watch/metric_statistic.rb +1 -2
- data/lib/fog/aws/models/compute/address.rb +7 -4
- data/lib/fog/aws/models/compute/addresses.rb +2 -2
- data/lib/fog/aws/models/compute/flavors.rb +1 -1
- data/lib/fog/aws/models/compute/key_pairs.rb +2 -2
- data/lib/fog/aws/models/compute/security_group.rb +3 -3
- data/lib/fog/aws/models/compute/security_groups.rb +30 -5
- data/lib/fog/aws/models/compute/server.rb +5 -1
- data/lib/fog/aws/models/compute/servers.rb +2 -2
- data/lib/fog/aws/models/compute/subnet.rb +58 -0
- data/lib/fog/aws/models/compute/subnets.rb +99 -0
- data/lib/fog/aws/models/compute/volumes.rb +3 -3
- data/lib/fog/aws/models/compute/vpc.rb +63 -0
- data/lib/fog/aws/models/compute/vpcs.rb +93 -0
- data/lib/fog/aws/models/dns/record.rb +37 -23
- data/lib/fog/aws/models/dns/records.rb +3 -3
- data/lib/fog/aws/models/elasticache/cluster.rb +1 -1
- data/lib/fog/aws/models/elb/listener.rb +9 -7
- data/lib/fog/aws/models/elb/load_balancer.rb +6 -0
- data/lib/fog/aws/models/storage/directory.rb +22 -1
- data/lib/fog/aws/models/storage/file.rb +60 -9
- data/lib/fog/aws/models/storage/files.rb +4 -4
- data/lib/fog/aws/models/storage/version.rb +36 -0
- data/lib/fog/aws/models/storage/versions.rb +38 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb +3 -3
- data/lib/fog/aws/parsers/beanstalk/check_dns_availability.rb +19 -0
- data/lib/fog/aws/parsers/beanstalk/create_application.rb +24 -0
- data/lib/fog/aws/parsers/beanstalk/create_application_version.rb +26 -0
- data/lib/fog/aws/parsers/beanstalk/create_configuration_template.rb +29 -0
- data/lib/fog/aws/parsers/beanstalk/create_environment.rb +37 -0
- data/lib/fog/aws/parsers/beanstalk/create_storage_location.rb +18 -0
- data/lib/fog/aws/parsers/beanstalk/describe_application_versions.rb +26 -0
- data/lib/fog/aws/parsers/beanstalk/describe_applications.rb +24 -0
- data/lib/fog/aws/parsers/beanstalk/describe_configuration_options.rb +32 -0
- data/lib/fog/aws/parsers/beanstalk/describe_configuration_settings.rb +30 -0
- data/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb +26 -0
- data/lib/fog/aws/parsers/beanstalk/describe_environments.rb +38 -0
- data/lib/fog/aws/parsers/beanstalk/describe_events.rb +27 -0
- data/lib/fog/aws/parsers/beanstalk/empty.rb +27 -0
- data/lib/fog/aws/parsers/beanstalk/list_available_solution_stacks.rb +21 -0
- data/lib/fog/aws/parsers/beanstalk/parser.rb +93 -0
- data/lib/fog/aws/parsers/beanstalk/retrieve_environment_info.rb +22 -0
- data/lib/fog/aws/parsers/beanstalk/terminate_environment.rb +37 -0
- data/lib/fog/aws/parsers/beanstalk/update_application.rb +24 -0
- data/lib/fog/aws/parsers/beanstalk/update_application_version.rb +26 -0
- data/lib/fog/aws/parsers/beanstalk/update_configuration_template.rb +29 -0
- data/lib/fog/aws/parsers/beanstalk/update_environment.rb +37 -0
- data/lib/fog/aws/parsers/beanstalk/validate_configuration_settings.rb +22 -0
- data/lib/fog/aws/parsers/compute/allocate_address.rb +1 -1
- data/lib/fog/aws/parsers/compute/associate_address.rb +25 -0
- data/lib/fog/aws/parsers/compute/create_subnet.rb +51 -0
- data/lib/fog/aws/parsers/compute/create_vpc.rb +51 -0
- data/lib/fog/aws/parsers/compute/delete_subnet.rb +24 -0
- data/lib/fog/aws/parsers/compute/delete_vpc.rb +24 -0
- data/lib/fog/aws/parsers/compute/describe_addresses.rb +1 -1
- data/lib/fog/aws/parsers/compute/describe_images.rb +20 -13
- data/lib/fog/aws/parsers/compute/describe_instance_status.rb +97 -0
- data/lib/fog/aws/parsers/compute/describe_instances.rb +2 -2
- data/lib/fog/aws/parsers/compute/describe_security_groups.rb +4 -4
- data/lib/fog/aws/parsers/compute/describe_subnets.rb +49 -0
- data/lib/fog/aws/parsers/compute/describe_volume_status.rb +70 -0
- data/lib/fog/aws/parsers/compute/describe_vpcs.rb +49 -0
- data/lib/fog/aws/parsers/dns/list_resource_record_sets.rb +15 -7
- data/lib/fog/aws/parsers/elb/describe_load_balancer_policies.rb +64 -0
- data/lib/fog/aws/parsers/elb/describe_load_balancer_policy_types.rb +70 -0
- data/lib/fog/aws/parsers/sns/confirm_subscription.rb +1 -1
- data/lib/fog/aws/parsers/sns/create_topic.rb +1 -1
- data/lib/fog/aws/parsers/sns/list_subscriptions.rb +2 -2
- data/lib/fog/aws/parsers/sns/list_topics.rb +1 -1
- data/lib/fog/aws/parsers/sns/subscribe.rb +1 -1
- data/lib/fog/aws/parsers/sqs/receive_message.rb +1 -1
- data/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb +32 -0
- data/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb +1 -1
- data/lib/fog/aws/parsers/storage/get_bucket_versioning.rb +1 -1
- data/lib/fog/aws/parsers/sts/get_session_token.rb +31 -0
- data/lib/fog/aws/rds.rb +51 -18
- data/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb +10 -1
- data/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb +16 -7
- data/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb +5 -0
- data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +13 -3
- data/lib/fog/aws/requests/beanstalk/check_dns_availability.rb +27 -0
- data/lib/fog/aws/requests/beanstalk/create_application.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/create_application_version.rb +41 -0
- data/lib/fog/aws/requests/beanstalk/create_configuration_template.rb +44 -0
- data/lib/fog/aws/requests/beanstalk/create_environment.rb +50 -0
- data/lib/fog/aws/requests/beanstalk/create_storage_location.rb +27 -0
- data/lib/fog/aws/requests/beanstalk/delete_application.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/delete_application_version.rb +36 -0
- data/lib/fog/aws/requests/beanstalk/delete_configuration_template.rb +34 -0
- data/lib/fog/aws/requests/beanstalk/delete_environment_configuration.rb +34 -0
- data/lib/fog/aws/requests/beanstalk/describe_application_versions.rb +34 -0
- data/lib/fog/aws/requests/beanstalk/describe_applications.rb +30 -0
- data/lib/fog/aws/requests/beanstalk/describe_configuration_options.rb +40 -0
- data/lib/fog/aws/requests/beanstalk/describe_configuration_settings.rb +31 -0
- data/lib/fog/aws/requests/beanstalk/describe_environment_resources.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/describe_environments.rb +40 -0
- data/lib/fog/aws/requests/beanstalk/describe_events.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/list_available_solution_stacks.rb +27 -0
- data/lib/fog/aws/requests/beanstalk/rebuild_environment.rb +30 -0
- data/lib/fog/aws/requests/beanstalk/request_environment_info.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/restart_app_server.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/retrieve_environment_info.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/swap_environment_cnames.rb +29 -0
- data/lib/fog/aws/requests/beanstalk/terminate_environment.rb +31 -0
- data/lib/fog/aws/requests/beanstalk/update_application.rb +30 -0
- data/lib/fog/aws/requests/beanstalk/update_application_version.rb +30 -0
- data/lib/fog/aws/requests/beanstalk/update_configuration_template.rb +36 -0
- data/lib/fog/aws/requests/beanstalk/update_environment.rb +42 -0
- data/lib/fog/aws/requests/beanstalk/validate_configuration_settings.rb +33 -0
- data/lib/fog/aws/requests/compute/allocate_address.rb +11 -4
- data/lib/fog/aws/requests/compute/associate_address.rb +44 -17
- data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +15 -17
- data/lib/fog/aws/requests/compute/create_security_group.rb +8 -4
- data/lib/fog/aws/requests/compute/create_subnet.rb +79 -0
- data/lib/fog/aws/requests/compute/create_tags.rb +3 -2
- data/lib/fog/aws/requests/compute/create_vpc.rb +71 -0
- data/lib/fog/aws/requests/compute/delete_security_group.rb +22 -4
- data/lib/fog/aws/requests/compute/delete_subnet.rb +49 -0
- data/lib/fog/aws/requests/compute/delete_vpc.rb +52 -0
- data/lib/fog/aws/requests/compute/describe_availability_zones.rb +3 -0
- data/lib/fog/aws/requests/compute/describe_instance_status.rb +36 -0
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +4 -0
- data/lib/fog/aws/requests/compute/describe_subnets.rb +66 -0
- data/lib/fog/aws/requests/compute/describe_volume_status.rb +50 -0
- data/lib/fog/aws/requests/compute/describe_vpcs.rb +62 -0
- data/lib/fog/aws/requests/compute/detach_volume.rb +13 -8
- data/lib/fog/aws/requests/compute/disassociate_address.rb +7 -5
- data/lib/fog/aws/requests/compute/request_spot_instances.rb +5 -1
- data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +11 -13
- data/lib/fog/aws/requests/compute/run_instances.rb +5 -1
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +43 -28
- data/lib/fog/aws/requests/dns/create_hosted_zone.rb +9 -9
- data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +7 -7
- data/lib/fog/aws/requests/dns/get_change.rb +5 -5
- data/lib/fog/aws/requests/dns/get_hosted_zone.rb +8 -8
- data/lib/fog/aws/requests/dns/list_hosted_zones.rb +15 -15
- data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +23 -20
- data/lib/fog/aws/requests/dynamodb/batch_get_item.rb +43 -0
- data/lib/fog/aws/requests/dynamodb/create_table.rb +55 -0
- data/lib/fog/aws/requests/dynamodb/delete_item.rb +45 -0
- data/lib/fog/aws/requests/dynamodb/delete_table.rb +42 -0
- data/lib/fog/aws/requests/dynamodb/describe_table.rb +44 -0
- data/lib/fog/aws/requests/dynamodb/get_item.rb +43 -0
- data/lib/fog/aws/requests/dynamodb/list_tables.rb +29 -0
- data/lib/fog/aws/requests/dynamodb/put_item.rb +41 -0
- data/lib/fog/aws/requests/dynamodb/query.rb +44 -0
- data/lib/fog/aws/requests/dynamodb/scan.rb +45 -0
- data/lib/fog/aws/requests/dynamodb/update_item.rb +49 -0
- data/lib/fog/aws/requests/dynamodb/update_table.rb +46 -0
- data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +2 -2
- data/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb +2 -2
- data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +2 -0
- data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +3 -1
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +7 -2
- data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +10 -1
- data/lib/fog/aws/requests/elb/create_load_balancer_policy.rb +79 -0
- data/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +1 -1
- data/lib/fog/aws/requests/elb/describe_load_balancer_policies.rb +71 -0
- data/lib/fog/aws/requests/elb/describe_load_balancer_policy_types.rb +68 -0
- data/lib/fog/aws/requests/elb/describe_load_balancers.rb +5 -1
- data/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb +27 -0
- data/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +1 -1
- data/lib/fog/aws/requests/emr/run_job_flow.rb +9 -7
- data/lib/fog/aws/requests/iam/add_user_to_group.rb +24 -0
- data/lib/fog/aws/requests/iam/create_access_key.rb +24 -0
- data/lib/fog/aws/requests/iam/create_group.rb +21 -0
- data/lib/fog/aws/requests/iam/create_user.rb +21 -0
- data/lib/fog/aws/requests/iam/delete_access_key.rb +17 -0
- data/lib/fog/aws/requests/iam/delete_group.rb +19 -0
- data/lib/fog/aws/requests/iam/delete_user.rb +17 -0
- data/lib/fog/aws/requests/iam/delete_user_policy.rb +16 -0
- data/lib/fog/aws/requests/iam/list_access_keys.rb +21 -0
- data/lib/fog/aws/requests/iam/list_groups.rb +18 -0
- data/lib/fog/aws/requests/iam/list_groups_for_user.rb +24 -0
- data/lib/fog/aws/requests/iam/list_user_policies.rb +18 -0
- data/lib/fog/aws/requests/iam/list_users.rb +17 -0
- data/lib/fog/aws/requests/iam/put_user_policy.rb +18 -0
- data/lib/fog/aws/requests/iam/remove_user_from_group.rb +19 -0
- data/lib/fog/aws/requests/iam/upload_server_certificate.rb +4 -1
- data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +30 -1
- data/lib/fog/aws/requests/rds/create_db_instance.rb +73 -7
- data/lib/fog/aws/requests/rds/create_db_parameter_group.rb +19 -1
- data/lib/fog/aws/requests/rds/create_db_security_group.rb +19 -1
- data/lib/fog/aws/requests/rds/create_db_snapshot.rb +38 -2
- data/lib/fog/aws/requests/rds/delete_db_instance.rb +18 -3
- data/lib/fog/aws/requests/rds/delete_db_parameter_group.rb +11 -1
- data/lib/fog/aws/requests/rds/delete_db_security_group.rb +11 -1
- data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +15 -4
- data/lib/fog/aws/requests/rds/describe_db_instances.rb +57 -2
- data/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb +19 -1
- data/lib/fog/aws/requests/rds/describe_db_parameters.rb +0 -1
- data/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb +1 -1
- data/lib/fog/aws/requests/rds/describe_db_security_groups.rb +49 -3
- data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +28 -1
- data/lib/fog/aws/requests/rds/modify_db_instance.rb +26 -1
- data/lib/fog/aws/requests/rds/reboot_db_instance.rb +17 -1
- data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +27 -1
- data/lib/fog/aws/requests/sns/confirm_subscription.rb +1 -1
- data/lib/fog/aws/requests/sns/delete_topic.rb +1 -1
- data/lib/fog/aws/requests/sns/get_topic_attributes.rb +1 -1
- data/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb +1 -1
- data/lib/fog/aws/requests/sns/publish.rb +1 -1
- data/lib/fog/aws/requests/sns/set_topic_attributes.rb +1 -1
- data/lib/fog/aws/requests/sns/subscribe.rb +1 -1
- data/lib/fog/aws/requests/sns/unsubscribe.rb +1 -1
- data/lib/fog/aws/requests/sqs/change_message_visibility.rb +1 -1
- data/lib/fog/aws/requests/sqs/delete_message.rb +1 -1
- data/lib/fog/aws/requests/sqs/receive_message.rb +13 -14
- data/lib/fog/aws/requests/storage/{hash_to_acl.rb → acl_utils.rb} +8 -0
- data/lib/fog/aws/requests/storage/copy_object.rb +11 -5
- data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +30 -0
- data/lib/fog/aws/requests/storage/delete_object.rb +73 -2
- data/lib/fog/aws/requests/storage/get_bucket.rb +3 -2
- data/lib/fog/aws/requests/storage/get_bucket_acl.rb +7 -1
- data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +41 -0
- data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +95 -2
- data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +32 -0
- data/lib/fog/aws/requests/storage/get_object.rb +42 -12
- data/lib/fog/aws/requests/storage/get_object_acl.rb +7 -1
- data/lib/fog/aws/requests/storage/get_object_http_url.rb +10 -4
- data/lib/fog/aws/requests/storage/get_object_https_url.rb +10 -4
- data/lib/fog/aws/requests/storage/head_object.rb +7 -6
- data/lib/fog/aws/requests/storage/put_bucket_acl.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +48 -0
- data/lib/fog/aws/requests/storage/put_bucket_versioning.rb +41 -0
- data/lib/fog/aws/requests/storage/put_bucket_website.rb +17 -0
- data/lib/fog/aws/requests/storage/put_object.rb +26 -10
- data/lib/fog/aws/requests/storage/put_object_acl.rb +1 -1
- data/lib/fog/aws/requests/storage/sync_clock.rb +1 -1
- data/lib/fog/aws/requests/sts/get_federation_token.rb +21 -0
- data/lib/fog/aws/requests/sts/get_session_token.rb +19 -0
- data/lib/fog/aws/ses.rb +2 -7
- data/lib/fog/aws/simpledb.rb +4 -17
- data/lib/fog/aws/sns.rb +1 -14
- data/lib/fog/aws/sqs.rb +5 -11
- data/lib/fog/aws/storage.rb +7 -23
- data/lib/fog/aws/sts.rb +137 -0
- data/lib/fog/aws.rb +40 -5
- data/lib/fog/{new_servers → bare_metal_cloud}/compute.rb +14 -14
- data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/add_server.rb +1 -1
- data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/cancel_server.rb +1 -1
- data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/get_server.rb +1 -1
- data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/list_images.rb +1 -1
- data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/list_plans.rb +1 -1
- data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/list_servers.rb +1 -1
- data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/reboot_server.rb +1 -1
- data/lib/fog/{new_servers.rb → bare_metal_cloud.rb} +2 -2
- data/lib/fog/bin/aws.rb +11 -1
- data/lib/fog/bin/{new_servers.rb → bare_metal_cloud.rb} +5 -5
- data/lib/fog/bin/clodo.rb +31 -0
- data/lib/fog/bin/cloudstack.rb +30 -0
- data/lib/fog/bin/joyent.rb +31 -0
- data/lib/fog/bin/ovirt.rb +30 -0
- data/lib/fog/bin/voxel.rb +1 -1
- data/lib/fog/bin.rb +5 -1
- data/lib/fog/bluebox/compute.rb +4 -0
- data/lib/fog/bluebox/models/compute/location.rb +17 -0
- data/lib/fog/bluebox/models/compute/locations.rb +28 -0
- data/lib/fog/bluebox/models/compute/server.rb +12 -5
- data/lib/fog/bluebox/requests/compute/create_block.rb +2 -2
- data/lib/fog/bluebox/requests/compute/get_location.rb +26 -0
- data/lib/fog/bluebox/requests/compute/get_locations.rb +24 -0
- data/lib/fog/brightbox/compute.rb +8 -0
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +10 -2
- data/lib/fog/brightbox/models/compute/firewall_policies.rb +29 -0
- data/lib/fog/brightbox/models/compute/firewall_policy.rb +65 -0
- data/lib/fog/brightbox/models/compute/firewall_rule.rb +54 -0
- data/lib/fog/brightbox/models/compute/firewall_rules.rb +24 -0
- data/lib/fog/brightbox/models/compute/image.rb +2 -0
- data/lib/fog/brightbox/models/compute/server.rb +41 -6
- data/lib/fog/brightbox/models/compute/server_group.rb +56 -17
- data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +14 -0
- data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +13 -0
- data/lib/fog/clodo/compute.rb +152 -0
- data/lib/fog/clodo/models/compute/image.rb +31 -0
- data/lib/fog/clodo/models/compute/images.rb +28 -0
- data/lib/fog/clodo/models/compute/server.rb +163 -0
- data/lib/fog/clodo/models/compute/servers.rb +36 -0
- data/lib/fog/clodo/requests/compute/add_ip_address.rb +49 -0
- data/lib/fog/clodo/requests/compute/create_server.rb +112 -0
- data/lib/fog/clodo/requests/compute/delete_ip_address.rb +47 -0
- data/lib/fog/clodo/requests/compute/delete_server.rb +44 -0
- data/lib/fog/clodo/requests/compute/get_image_details.rb +20 -0
- data/lib/fog/clodo/requests/compute/get_server_details.rb +49 -0
- data/lib/fog/clodo/requests/compute/list_images.rb +48 -0
- data/lib/fog/clodo/requests/compute/list_images_detail.rb +61 -0
- data/lib/fog/clodo/requests/compute/list_servers.rb +50 -0
- data/lib/fog/clodo/requests/compute/list_servers_detail.rb +51 -0
- data/lib/fog/clodo/requests/compute/move_ip_address.rb +34 -0
- data/lib/fog/clodo/requests/compute/reboot_server.rb +19 -0
- data/lib/fog/clodo/requests/compute/rebuild_server.rb +21 -0
- data/lib/fog/clodo/requests/compute/server_action.rb +25 -0
- data/lib/fog/clodo/requests/compute/start_server.rb +19 -0
- data/lib/fog/clodo/requests/compute/stop_server.rb +19 -0
- data/lib/fog/clodo.rb +34 -0
- data/lib/fog/cloudstack/compute.rb +254 -0
- data/lib/fog/cloudstack/requests/compute/acquire_ip_address.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/attach_volume.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_account.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_domain.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_network.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_security_group.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_snapshot.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_user.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_volume.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_account.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_domain.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_security_group.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_snapshot.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_user.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_volume.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb +33 -0
- data/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/detach_volume.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/disable_account.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/disable_user.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/enable_account.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/enable_user.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/generate_usage_records.rb +28 -0
- data/lib/fog/cloudstack/requests/compute/get_vm_password.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_accounts.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_alerts.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_async_jobs.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_capabilities.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_capacity.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_clusters.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_configurations.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_domain_children.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_domains.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_events.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_hosts.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_hypervisors.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_instance_groups.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_isos.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/list_network_offerings.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_networks.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_os_categories.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/list_os_types.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/list_pods.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/list_resource_limits.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_security_groups.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_service_offerings.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_snapshots.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_storage_pools.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_templates.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_usage_records.rb +28 -0
- data/lib/fog/cloudstack/requests/compute/list_users.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_volumes.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_zones.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/query_async_job_result.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/register_user_keys.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/update_account.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/update_domain.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/update_resource_count.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/update_user.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb +20 -0
- data/lib/fog/cloudstack.rb +28 -0
- data/lib/fog/compute/models/server.rb +11 -0
- data/lib/fog/compute.rb +20 -3
- data/lib/fog/core/connection.rb +2 -2
- data/lib/fog/core/credentials.rb +3 -3
- data/lib/fog/core/errors.rb +10 -2
- data/lib/fog/core/model.rb +8 -0
- data/lib/fog/core/scp.rb +18 -2
- data/lib/fog/core/wait_for.rb +1 -1
- data/lib/fog/core.rb +1 -3
- data/lib/fog/dns.rb +1 -0
- data/lib/fog/dnsimple/dns.rb +1 -1
- data/lib/fog/dnsmadeeasy/dns.rb +1 -1
- data/lib/fog/dynect/models/dns/records.rb +2 -2
- data/lib/fog/dynect/requests/dns/get_node_list.rb +2 -1
- data/lib/fog/ecloud/compute.rb +1 -1
- data/lib/fog/ecloud/requests/compute/add_backup_internet_service.rb +1 -1
- data/lib/fog/ecloud/requests/compute/add_internet_service.rb +2 -2
- data/lib/fog/ecloud/requests/compute/add_node.rb +1 -1
- data/lib/fog/ecloud/requests/compute/clone_vapp.rb +1 -1
- data/lib/fog/ecloud/requests/compute/configure_internet_service.rb +1 -1
- data/lib/fog/ecloud/requests/compute/configure_network.rb +1 -1
- data/lib/fog/ecloud/requests/compute/configure_network_ip.rb +1 -1
- data/lib/fog/ecloud/requests/compute/configure_vapp.rb +1 -1
- data/lib/fog/ecloud/requests/compute/instantiate_vapp_template.rb +1 -1
- data/lib/fog/glesys/compute.rb +4 -2
- data/lib/fog/glesys/models/compute/server.rb +14 -14
- data/lib/fog/google/requests/storage/get_object.rb +22 -14
- data/lib/fog/joyent/compute.rb +228 -0
- data/lib/fog/joyent/errors.rb +90 -0
- data/lib/fog/joyent/models/compute/flavor.rb +17 -0
- data/lib/fog/joyent/models/compute/flavors.rb +25 -0
- data/lib/fog/joyent/models/compute/image.rb +18 -0
- data/lib/fog/joyent/models/compute/images.rb +25 -0
- data/lib/fog/joyent/models/compute/key.rb +19 -0
- data/lib/fog/joyent/models/compute/keys.rb +34 -0
- data/lib/fog/joyent/models/compute/server.rb +117 -0
- data/lib/fog/joyent/models/compute/servers.rb +35 -0
- data/lib/fog/joyent/models/compute/snapshot.rb +45 -0
- data/lib/fog/joyent/models/compute/snapshots.rb +37 -0
- data/lib/fog/joyent/requests/compute/add_machine_tags.rb +20 -0
- data/lib/fog/joyent/requests/compute/create_key.rb +56 -0
- data/lib/fog/joyent/requests/compute/create_machine.rb +16 -0
- data/lib/fog/joyent/requests/compute/create_machine_snapshot.rb +18 -0
- data/lib/fog/joyent/requests/compute/delete_all_machine_metadata.rb +16 -0
- data/lib/fog/joyent/requests/compute/delete_all_machine_tags.rb +15 -0
- data/lib/fog/joyent/requests/compute/delete_key.rb +29 -0
- data/lib/fog/joyent/requests/compute/delete_machine.rb +15 -0
- data/lib/fog/joyent/requests/compute/delete_machine_metadata.rb +18 -0
- data/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb +21 -0
- data/lib/fog/joyent/requests/compute/delete_machine_tag.rb +15 -0
- data/lib/fog/joyent/requests/compute/get_dataset.rb +28 -0
- data/lib/fog/joyent/requests/compute/get_key.rb +29 -0
- data/lib/fog/joyent/requests/compute/get_machine.rb +29 -0
- data/lib/fog/joyent/requests/compute/get_machine_metadata.rb +25 -0
- data/lib/fog/joyent/requests/compute/get_machine_snapshot.rb +14 -0
- data/lib/fog/joyent/requests/compute/get_machine_tag.rb +19 -0
- data/lib/fog/joyent/requests/compute/get_package.rb +33 -0
- data/lib/fog/joyent/requests/compute/list_datasets.rb +24 -0
- data/lib/fog/joyent/requests/compute/list_keys.rb +25 -0
- data/lib/fog/joyent/requests/compute/list_machine_snapshots.rb +14 -0
- data/lib/fog/joyent/requests/compute/list_machine_tags.rb +20 -0
- data/lib/fog/joyent/requests/compute/list_machines.rb +25 -0
- data/lib/fog/joyent/requests/compute/list_packages.rb +36 -0
- data/lib/fog/joyent/requests/compute/reboot_machine.rb +15 -0
- data/lib/fog/joyent/requests/compute/resize_machine.rb +13 -0
- data/lib/fog/joyent/requests/compute/start_machine.rb +16 -0
- data/lib/fog/joyent/requests/compute/start_machine_from_snapshot.rb +15 -0
- data/lib/fog/joyent/requests/compute/stop_machine.rb +16 -0
- data/lib/fog/joyent/requests/compute/update_machine_metadata.rb +15 -0
- data/lib/fog/joyent.rb +8 -0
- data/lib/fog/libvirt/compute.rb +7 -3
- data/lib/fog/libvirt/models/compute/nodes.rb +1 -3
- data/lib/fog/libvirt/models/compute/server.rb +93 -99
- data/lib/fog/libvirt/models/compute/servers.rb +2 -1
- data/lib/fog/libvirt/models/compute/util.rb +1 -2
- data/lib/fog/local/models/storage/file.rb +8 -1
- data/lib/fog/local/storage.rb +8 -0
- data/lib/fog/ninefold/models/storage/file.rb +8 -0
- data/lib/fog/openstack/compute.rb +0 -2
- data/lib/fog/openstack.rb +9 -7
- data/lib/fog/ovirt/compute.rb +106 -0
- data/lib/fog/ovirt/models/compute/cluster.rb +24 -0
- data/lib/fog/ovirt/models/compute/clusters.rb +23 -0
- data/lib/fog/ovirt/models/compute/interface.rb +22 -0
- data/lib/fog/ovirt/models/compute/interfaces.rb +32 -0
- data/lib/fog/ovirt/models/compute/server.rb +112 -0
- data/lib/fog/ovirt/models/compute/servers.rb +30 -0
- data/lib/fog/ovirt/models/compute/template.rb +53 -0
- data/lib/fog/ovirt/models/compute/templates.rb +23 -0
- data/lib/fog/ovirt/requests/compute/add_interface.rb +23 -0
- data/lib/fog/ovirt/requests/compute/create_vm.rb +20 -0
- data/lib/fog/ovirt/requests/compute/datacenters.rb +22 -0
- data/lib/fog/ovirt/requests/compute/destroy_interface.rb +25 -0
- data/lib/fog/ovirt/requests/compute/destroy_vm.rb +22 -0
- data/lib/fog/ovirt/requests/compute/get_cluster.rb +18 -0
- data/lib/fog/ovirt/requests/compute/get_template.rb +18 -0
- data/lib/fog/ovirt/requests/compute/get_virtual_machine.rb +18 -0
- data/lib/fog/ovirt/requests/compute/list_clusters.rb +20 -0
- data/lib/fog/ovirt/requests/compute/list_networks.rb +17 -0
- data/lib/fog/ovirt/requests/compute/list_template_interfaces.rb +20 -0
- data/lib/fog/ovirt/requests/compute/list_templates.rb +20 -0
- data/lib/fog/ovirt/requests/compute/list_virtual_machines.rb +20 -0
- data/lib/fog/ovirt/requests/compute/list_vm_interfaces.rb +20 -0
- data/lib/fog/ovirt/requests/compute/mock_files/cluster.xml +20 -0
- data/lib/fog/ovirt/requests/compute/mock_files/clusters.xml +39 -0
- data/lib/fog/ovirt/requests/compute/mock_files/data_centers.xml +17 -0
- data/lib/fog/ovirt/requests/compute/mock_files/nics.xml +10 -0
- data/lib/fog/ovirt/requests/compute/mock_files/storage_domains.xml +36 -0
- data/lib/fog/ovirt/requests/compute/mock_files/template.xml +39 -0
- data/lib/fog/ovirt/requests/compute/mock_files/templates.xml +110 -0
- data/lib/fog/ovirt/requests/compute/mock_files/vm.xml +54 -0
- data/lib/fog/ovirt/requests/compute/mock_files/vms.xml +152 -0
- data/lib/fog/ovirt/requests/compute/storage_domains.rb +22 -0
- data/lib/fog/ovirt/requests/compute/update_interface.rb +25 -0
- data/lib/fog/ovirt/requests/compute/update_vm.rb +20 -0
- data/lib/fog/ovirt/requests/compute/vm_action.rb +26 -0
- data/lib/fog/ovirt.rb +17 -0
- data/lib/fog/providers.rb +5 -1
- data/lib/fog/rackspace/dns.rb +10 -2
- data/lib/fog/rackspace/load_balancers.rb +3 -0
- data/lib/fog/rackspace/models/compute/flavor.rb +2 -0
- data/lib/fog/rackspace/models/compute/server.rb +2 -2
- data/lib/fog/rackspace/models/dns/callback.rb +3 -1
- data/lib/fog/rackspace/models/dns/record.rb +4 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +18 -8
- data/lib/fog/rackspace/models/storage/directory.rb +5 -1
- data/lib/fog/rackspace/models/storage/file.rb +7 -0
- data/lib/fog/rackspace/requests/compute/create_image.rb +1 -3
- data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +1 -2
- data/lib/fog/rackspace/requests/load_balancers/get_error_page.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +8 -2
- data/lib/fog/rackspace/requests/load_balancers/remove_error_page.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/set_error_page.rb +21 -0
- data/lib/fog/rackspace/requests/storage/copy_object.rb +27 -0
- data/lib/fog/rackspace/requests/storage/get_object.rb +8 -2
- data/lib/fog/rackspace/requests/storage/put_object.rb +6 -5
- data/lib/fog/rackspace/storage.rb +1 -0
- data/lib/fog/storm_on_demand/compute.rb +1 -1
- data/lib/fog/vcloud/compute.rb +91 -30
- data/lib/fog/vcloud/models/compute/catalog.rb +1 -1
- data/lib/fog/vcloud/models/compute/catalog_item.rb +1 -1
- data/lib/fog/vcloud/models/compute/catalogs.rb +5 -8
- data/lib/fog/vcloud/models/compute/helpers/status.rb +37 -0
- data/lib/fog/vcloud/models/compute/ip.rb +2 -2
- data/lib/fog/vcloud/models/compute/network.rb +9 -51
- data/lib/fog/vcloud/models/compute/networks.rb +21 -7
- data/lib/fog/vcloud/models/compute/organization.rb +43 -0
- data/lib/fog/vcloud/models/compute/organizations.rb +32 -0
- data/lib/fog/vcloud/models/compute/server.rb +38 -58
- data/lib/fog/vcloud/models/compute/servers.rb +12 -18
- data/lib/fog/vcloud/models/compute/task.rb +1 -1
- data/lib/fog/vcloud/models/compute/tasks.rb +1 -3
- data/lib/fog/vcloud/models/compute/vapp.rb +43 -0
- data/lib/fog/vcloud/models/compute/vapps.rb +28 -0
- data/lib/fog/vcloud/models/compute/vdc.rb +14 -29
- data/lib/fog/vcloud/models/compute/vdcs.rb +6 -11
- data/lib/fog/vcloud/requests/compute/clone_vapp.rb +1 -1
- data/lib/fog/vcloud/requests/compute/configure_network.rb +1 -1
- data/lib/fog/vcloud/requests/compute/configure_network_ip.rb +1 -1
- data/lib/fog/vcloud/requests/compute/configure_vapp.rb +1 -1
- data/lib/fog/vcloud/requests/compute/configure_vm.rb +1 -1
- data/lib/fog/vcloud/requests/compute/get_server.rb +10 -0
- data/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb +1 -1
- data/lib/fog/vcloud/requests/compute/login.rb +8 -4
- data/lib/fog/virtual_box/compute.rb +4 -0
- data/lib/fog/vmfusion/models/compute/server.rb +120 -52
- data/lib/fog/vmfusion/models/compute/servers.rb +11 -7
- data/lib/fog/voxel/compute.rb +1 -1
- data/lib/fog/vsphere/compute.rb +6 -0
- data/lib/fog/vsphere/models/compute/server.rb +43 -0
- data/lib/fog/vsphere/models/compute/servers.rb +8 -2
- data/lib/fog/vsphere/requests/compute/datacenters.rb +34 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +132 -91
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +115 -41
- data/lib/fog/vsphere/requests/compute/vm_create.rb +97 -0
- data/lib/fog/vsphere/requests/compute/vm_migrate.rb +37 -0
- data/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb +23 -0
- data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +25 -0
- data/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb +23 -0
- data/lib/fog/zerigo/models/dns/record.rb +7 -5
- data/lib/fog/zerigo/parsers/dns/create_host.rb +3 -1
- data/lib/fog/zerigo/parsers/dns/find_hosts.rb +3 -1
- data/lib/fog/zerigo/parsers/dns/get_host.rb +3 -1
- data/lib/fog/zerigo/parsers/dns/get_zone.rb +3 -1
- data/lib/fog/zerigo/parsers/dns/list_hosts.rb +3 -1
- data/lib/fog/zerigo/requests/dns/update_host.rb +2 -2
- data/lib/fog.rb +1 -1
- data/spec/ecloud/spec_helper.rb +1 -1
- data/spec/lib/fog/aws/parsers/sqs/receive_message_spec.rb +58 -0
- data/tests/aws/models/beanstalk/application_tests.rb +70 -0
- data/tests/aws/models/beanstalk/applications_tests.rb +7 -0
- data/tests/aws/models/beanstalk/environment_tests.rb +132 -0
- data/tests/aws/models/beanstalk/environments_tests.rb +34 -0
- data/tests/aws/models/beanstalk/template_tests.rb +47 -0
- data/tests/aws/models/beanstalk/templates_tests.rb +62 -0
- data/tests/aws/models/beanstalk/version_tests.rb +66 -0
- data/tests/aws/models/beanstalk/versions_tests.rb +61 -0
- data/tests/aws/models/compute/subnet_tests.rb +5 -0
- data/tests/aws/models/compute/subnets_tests.rb +6 -0
- data/tests/aws/models/compute/vpc_tests.rb +4 -0
- data/tests/aws/models/compute/vpcs_tests.rb +6 -0
- data/tests/aws/models/dns/record_tests.rb +23 -0
- data/tests/aws/models/dns/records_tests.rb +23 -0
- data/tests/aws/models/dns/zone_tests.rb +4 -0
- data/tests/aws/models/dns/zones_tests.rb +4 -0
- data/tests/aws/models/elb/model_tests.rb +15 -6
- data/tests/aws/models/rds/security_group_tests.rb +6 -3
- data/tests/aws/models/rds/security_groups_tests.rb +1 -2
- data/tests/aws/models/rds/server_tests.rb +5 -3
- data/tests/aws/models/rds/servers_tests.rb +1 -3
- data/tests/aws/models/rds/snapshot_tests.rb +1 -3
- data/tests/aws/models/rds/snapshots_tests.rb +1 -3
- data/tests/aws/models/storage/directory_tests.rb +51 -0
- data/tests/aws/models/storage/file_tests.rb +80 -0
- data/tests/aws/models/storage/files_tests.rb +56 -0
- data/tests/aws/models/storage/version_tests.rb +52 -0
- data/tests/aws/models/storage/versions_tests.rb +56 -0
- data/tests/aws/requests/auto_scaling/helper.rb +2 -2
- data/tests/aws/requests/beanstalk/application_tests.rb +140 -0
- data/tests/aws/requests/beanstalk/solution_stack_tests.rb +22 -0
- data/tests/aws/requests/compute/address_tests.rb +7 -5
- data/tests/aws/requests/compute/instance_tests.rb +37 -0
- data/tests/aws/requests/compute/security_group_tests.rb +78 -4
- data/tests/aws/requests/compute/subnet_tests.rb +36 -0
- data/tests/aws/requests/compute/volume_tests.rb +4 -0
- data/tests/aws/requests/compute/vpc_tests.rb +34 -0
- data/tests/aws/requests/dns/dns_tests.rb +106 -99
- data/tests/aws/requests/dns/helper.rb +21 -0
- data/tests/aws/requests/dynamodb/item_tests.rb +117 -0
- data/tests/aws/requests/dynamodb/table_tests.rb +99 -0
- data/tests/aws/requests/elb/helper.rb +33 -0
- data/tests/aws/requests/elb/listener_tests.rb +22 -4
- data/tests/aws/requests/elb/policy_tests.rb +13 -0
- data/tests/aws/requests/iam/access_key_tests.rb +2 -7
- data/tests/aws/requests/iam/group_tests.rb +1 -4
- data/tests/aws/requests/iam/helper.rb +19 -0
- data/tests/aws/requests/iam/server_certificate_tests.rb +5 -0
- data/tests/aws/requests/iam/user_policy_tests.rb +4 -11
- data/tests/aws/requests/iam/user_tests.rb +19 -12
- data/tests/aws/requests/rds/helper.rb +45 -11
- data/tests/aws/requests/rds/instance_tests.rb +2 -3
- data/tests/aws/requests/rds/parameter_group_tests.rb +1 -7
- data/tests/aws/requests/rds/security_group_tests.rb +101 -0
- data/tests/aws/requests/storage/{hash_to_acl_tests.rb → acl_utils_tests.rb} +38 -2
- data/tests/aws/requests/storage/bucket_tests.rb +66 -4
- data/tests/aws/requests/storage/object_tests.rb +2 -4
- data/tests/aws/requests/storage/versioning_tests.rb +188 -0
- data/tests/aws/requests/sts/get_federation_token_tests.rb +21 -0
- data/tests/aws/requests/sts/session_token_tests.rb +16 -0
- data/tests/bluebox/requests/compute/block_tests.rb +9 -8
- data/tests/bluebox/requests/compute/helper.rb +5 -0
- data/tests/bluebox/requests/compute/location_tests.rb +32 -0
- data/tests/bluebox/requests/compute/product_tests.rb +10 -4
- data/tests/bluebox/requests/compute/template_tests.rb +4 -2
- data/tests/brightbox/requests/compute/account_tests.rb +11 -6
- data/tests/brightbox/requests/compute/api_client_tests.rb +23 -12
- data/tests/brightbox/requests/compute/cloud_ip_tests.rb +32 -17
- data/tests/brightbox/requests/compute/helper.rb +62 -11
- data/tests/brightbox/requests/compute/image_tests.rb +17 -14
- data/tests/brightbox/requests/compute/interface_tests.rb +3 -2
- data/tests/brightbox/requests/compute/load_balancer_tests.rb +57 -11
- data/tests/brightbox/requests/compute/server_group_tests.rb +29 -22
- data/tests/brightbox/requests/compute/server_tests.rb +43 -22
- data/tests/brightbox/requests/compute/server_type_tests.rb +7 -6
- data/tests/brightbox/requests/compute/user_tests.rb +11 -16
- data/tests/brightbox/requests/compute/zone_tests.rb +7 -6
- data/tests/clodo/requests/compute/image_tests.rb +36 -0
- data/tests/clodo/requests/compute/server_tests.rb +152 -0
- data/tests/cloudstack/requests/disk_offering_tests.rb +29 -0
- data/tests/cloudstack/requests/os_type_tests.rb +38 -0
- data/tests/cloudstack/requests/security_group_tests.rb +29 -0
- data/tests/cloudstack/requests/service_offering_tests.rb +38 -0
- data/tests/cloudstack/requests/snapshot_tests.rb +32 -0
- data/tests/cloudstack/requests/ssh_key_pair_tests.rb +23 -0
- data/tests/cloudstack/requests/template_tests.rb +53 -0
- data/tests/cloudstack/requests/virtual_machine_tests.rb +71 -0
- data/tests/cloudstack/requests/volume_tests.rb +48 -0
- data/tests/cloudstack/requests/zone_tests.rb +33 -0
- data/tests/cloudstack/signed_params_tests.rb +12 -0
- data/tests/compute/helper.rb +8 -3
- data/tests/core/credential_tests.rb +2 -2
- data/tests/glesys/requests/compute/helper.rb +187 -139
- data/tests/glesys/requests/compute/ip_tests.rb +4 -4
- data/tests/glesys/requests/compute/server_tests.rb +55 -17
- data/tests/helper.rb +1 -1
- data/tests/helpers/formats_helper.rb +1 -1
- data/tests/helpers/mock_helper.rb +9 -2
- data/tests/joyent/requests/compute/datasets_tests.rb +49 -0
- data/tests/joyent/requests/compute/keys_tests.rb +47 -0
- data/tests/joyent/requests/compute/machines_tests.rb +67 -0
- data/tests/joyent/requests/compute/packages_tests.rb +68 -0
- data/tests/ovirt/compute_tests.rb +24 -0
- data/tests/ovirt/models/compute/cluster_tests.rb +31 -0
- data/tests/ovirt/models/compute/clusters_tests.rb +9 -0
- data/tests/ovirt/models/compute/interface_tests.rb +27 -0
- data/tests/ovirt/models/compute/interfaces_tests.rb +9 -0
- data/tests/ovirt/models/compute/server_tests.rb +51 -0
- data/tests/ovirt/models/compute/servers_tests.rb +14 -0
- data/tests/ovirt/models/compute/template_tests.rb +28 -0
- data/tests/ovirt/models/compute/templates_tests.rb +9 -0
- data/tests/ovirt/requests/compute/create_vm_tests.rb +26 -0
- data/tests/ovirt/requests/compute/destroy_vm_tests.rb +18 -0
- data/tests/ovirt/requests/compute/list_datacenters_tests.rb +13 -0
- data/tests/ovirt/requests/compute/list_storage_domains_tests.rb +13 -0
- data/tests/ovirt/requests/compute/update_vm_tests.rb +18 -0
- data/tests/rackspace/models/dns/zone_tests.rb +14 -0
- data/tests/rackspace/models/{load_balancer_tests.rb → load_balancers/load_balancer_tests.rb} +25 -0
- data/tests/rackspace/requests/dns/dns_tests.rb +4 -2
- data/tests/rackspace/requests/load_balancers/error_page_tests.rb +31 -0
- data/tests/rackspace/requests/load_balancers/helper.rb +27 -11
- data/tests/rackspace/requests/load_balancers/load_balancer_tests.rb +4 -1
- data/tests/rackspace/requests/load_balancers/node_tests.rb +24 -25
- data/tests/slicehost/requests/compute/slice_tests.rb +2 -2
- data/tests/storm_on_demand/requests/compute/server_tests.rb +3 -3
- data/tests/vcloud/data/api_+_admin_+_network_+_2 +110 -0
- data/tests/vcloud/data/api_+_network_+_1 +44 -0
- data/tests/vcloud/data/api_+_org_+_ +5 -0
- data/tests/vcloud/data/api_+_org_+_1 +17 -0
- data/tests/vcloud/data/api_+_sessions +8 -0
- data/tests/vcloud/data/api_+_v1.0_+_admin_+_network_+_2 +110 -0
- data/tests/vcloud/data/api_+_v1.0_+_login +5 -0
- data/tests/vcloud/data/api_+_v1.0_+_network_+_1 +44 -0
- data/tests/vcloud/data/api_+_v1.0_+_network_+_2 +31 -0
- data/tests/vcloud/data/api_+_v1.0_+_org_+_1 +17 -0
- data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vapp-1 +369 -0
- data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-1 +139 -0
- data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-2 +155 -0
- data/tests/vcloud/data/api_+_v1.0_+_vdc_+_1 +61 -0
- data/tests/vcloud/data/api_+_vApp_+_vapp-1 +369 -0
- data/tests/vcloud/data/api_+_vApp_+_vm-2 +155 -0
- data/tests/vcloud/data/api_+_vdc_+_1 +61 -0
- data/tests/vcloud/models/compute/conn_helper.rb +20 -0
- data/tests/vcloud/models/compute/network_tests.rb +67 -0
- data/tests/vcloud/models/compute/networks_tests.rb +61 -0
- data/tests/vcloud/models/compute/organization_tests.rb +20 -0
- data/tests/vcloud/models/compute/organizations_tests.rb +16 -0
- data/tests/vcloud/models/compute/server_tests.rb +142 -0
- data/tests/vcloud/models/compute/servers_tests.rb +18 -90
- data/tests/vcloud/models/compute/vapp_tests.rb +32 -0
- data/tests/vcloud/models/compute/vapps_tests.rb +19 -0
- data/tests/vcloud/models/compute/vdc_tests.rb +48 -0
- data/tests/vcloud/models/compute/vdcs_tests.rb +24 -0
- data/tests/vsphere/requests/compute/vm_clone_tests.rb +16 -8
- data/tests/vsphere/requests/compute/vm_create_tests.rb +20 -0
- data/tests/vsphere/requests/compute/vm_migrate_tests.rb +16 -0
- data/tests/vsphere/requests/compute/vm_power_on_tests.rb +1 -1
- data/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb +19 -0
- data/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb +19 -0
- data/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb +19 -0
- metadata +634 -69
- data/examples/compute_tests.rb +0 -71
- data/examples/dns_tests.rb +0 -78
- data/examples/storage_tests.rb +0 -105
- /data/tests/rackspace/models/{access_list_tests.rb → load_balancers/access_list_tests.rb} +0 -0
- /data/tests/rackspace/models/{access_lists_tests.rb → load_balancers/access_lists_tests.rb} +0 -0
- /data/tests/rackspace/models/{load_balancers_tests.rb → load_balancers/load_balancers_tests.rb} +0 -0
- /data/tests/rackspace/models/{node_tests.rb → load_balancers/node_tests.rb} +0 -0
- /data/tests/rackspace/models/{nodes_tests.rb → load_balancers/nodes_tests.rb} +0 -0
- /data/tests/rackspace/models/{virtual_ip_tests.rb → load_balancers/virtual_ip_tests.rb} +0 -0
- /data/tests/rackspace/models/{virtual_ips_tests.rb → load_balancers/virtual_ips_tests.rb} +0 -0
|
@@ -16,9 +16,11 @@ module Fog
|
|
|
16
16
|
attribute :name
|
|
17
17
|
attribute :description
|
|
18
18
|
attribute :default
|
|
19
|
+
attribute :created_at, :type => :time
|
|
20
|
+
|
|
21
|
+
attribute :server_ids, :aliases => "servers"
|
|
19
22
|
|
|
20
23
|
def save
|
|
21
|
-
requires :name
|
|
22
24
|
options = {
|
|
23
25
|
:name => name,
|
|
24
26
|
:description => description
|
|
@@ -28,30 +30,67 @@ module Fog
|
|
|
28
30
|
true
|
|
29
31
|
end
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
def servers
|
|
34
|
+
srv_ids = server_ids.collect {|srv| srv["id"]}
|
|
35
|
+
srv_ids.collect do |srv_id|
|
|
36
|
+
connection.servers.get(srv_id)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Adds specified servers to this server group
|
|
38
41
|
#
|
|
39
|
-
#
|
|
42
|
+
# @param [Array] identifiers array of server identifier strings to add
|
|
43
|
+
# @return [Fog::Compute::ServerGroup]
|
|
44
|
+
def add_servers identifiers
|
|
45
|
+
requires :identity
|
|
46
|
+
options = {
|
|
47
|
+
:servers => server_references(identifiers)
|
|
48
|
+
}
|
|
49
|
+
data = connection.add_servers_server_group identity, options
|
|
50
|
+
merge_attributes data
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Removes specified servers from this server group
|
|
40
54
|
#
|
|
41
|
-
#
|
|
55
|
+
# @param [Array] identifiers array of server identifier strings to remove
|
|
56
|
+
# @return [Fog::Compute::ServerGroup]
|
|
57
|
+
def remove_servers identifiers
|
|
58
|
+
requires :identity
|
|
59
|
+
options = {
|
|
60
|
+
:servers => server_references(identifiers)
|
|
61
|
+
}
|
|
62
|
+
data = connection.remove_servers_server_group identity, options
|
|
63
|
+
merge_attributes data
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Moves specified servers from this server group to the specified destination server group
|
|
42
67
|
#
|
|
43
|
-
|
|
68
|
+
# @param [Array] identifiers array of server identifier strings to move
|
|
69
|
+
# @param [String] destination_group_id destination server group identifier
|
|
70
|
+
# @return [Fog::Compute::ServerGroup]
|
|
71
|
+
def move_servers identifiers, destination_group_id
|
|
44
72
|
requires :identity
|
|
45
|
-
server_references = server_identifiers.map {|ident| {"server" => ident} }
|
|
46
73
|
options = {
|
|
47
|
-
:servers => server_references
|
|
74
|
+
:servers => server_references(identifiers),
|
|
75
|
+
:destination => destination_group_id
|
|
48
76
|
}
|
|
49
|
-
data = connection.
|
|
50
|
-
merge_attributes
|
|
77
|
+
data = connection.move_servers_server_group identity, options
|
|
78
|
+
merge_attributes data
|
|
51
79
|
end
|
|
52
80
|
|
|
53
|
-
|
|
81
|
+
def destroy
|
|
82
|
+
requires :identity
|
|
83
|
+
connection.destroy_server_group(identity)
|
|
84
|
+
true
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
protected
|
|
54
88
|
|
|
89
|
+
def server_references identifiers
|
|
90
|
+
identifiers.map {|id| {"server" => id} }
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end
|
|
55
94
|
end
|
|
56
95
|
end
|
|
57
|
-
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class Brightbox
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
def remove_firewall_policy(identifier, options)
|
|
7
|
+
return nil if identifier.nil? || identifier == ""
|
|
8
|
+
request("post", "/1.0/firewall_policies/#{identifier}/remove", [202], options)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class Clodo < Fog::Service
|
|
4
|
+
|
|
5
|
+
requires :clodo_api_key, :clodo_username
|
|
6
|
+
recognizes :clodo_auth_url, :persistent
|
|
7
|
+
recognizes :clodo_auth_token, :clodo_management_url
|
|
8
|
+
|
|
9
|
+
model_path 'fog/clodo/models/compute'
|
|
10
|
+
model :image
|
|
11
|
+
collection :images
|
|
12
|
+
model :server
|
|
13
|
+
collection :servers
|
|
14
|
+
|
|
15
|
+
request_path 'fog/clodo/requests/compute'
|
|
16
|
+
request :create_server
|
|
17
|
+
request :delete_server
|
|
18
|
+
request :get_image_details # Not supported by API
|
|
19
|
+
request :list_images
|
|
20
|
+
request :list_images_detail
|
|
21
|
+
request :list_servers
|
|
22
|
+
request :list_servers_detail
|
|
23
|
+
request :get_server_details
|
|
24
|
+
request :server_action
|
|
25
|
+
request :start_server
|
|
26
|
+
request :stop_server
|
|
27
|
+
request :reboot_server
|
|
28
|
+
request :rebuild_server
|
|
29
|
+
request :add_ip_address
|
|
30
|
+
request :delete_ip_address
|
|
31
|
+
request :move_ip_address
|
|
32
|
+
# request :list_addresses
|
|
33
|
+
# request :list_private_addresses
|
|
34
|
+
# request :list_public_addresses
|
|
35
|
+
# request :confirm_resized_server
|
|
36
|
+
# request :revert_resized_server
|
|
37
|
+
# request :resize_server
|
|
38
|
+
# request :update_server
|
|
39
|
+
|
|
40
|
+
class Mock
|
|
41
|
+
|
|
42
|
+
def self.data
|
|
43
|
+
@data ||= Hash.new do |hash, key|
|
|
44
|
+
hash[key] = {
|
|
45
|
+
:last_modified => {
|
|
46
|
+
:images => {},
|
|
47
|
+
:servers => {}
|
|
48
|
+
},
|
|
49
|
+
:images => {},
|
|
50
|
+
:servers => {}
|
|
51
|
+
}
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def self.reset
|
|
56
|
+
@data = nil
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def initialize(options={})
|
|
60
|
+
require 'multi_json'
|
|
61
|
+
@clodo_username = options[:clodo_username]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def data
|
|
65
|
+
self.class.data[@clodo_username]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def reset_data
|
|
69
|
+
self.class.data.delete(@clodo_username)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
class Real
|
|
75
|
+
|
|
76
|
+
def initialize(options={})
|
|
77
|
+
require 'multi_json'
|
|
78
|
+
@clodo_api_key = options[:clodo_api_key]
|
|
79
|
+
@clodo_username = options[:clodo_username]
|
|
80
|
+
@clodo_auth_url = options[:clodo_auth_url]
|
|
81
|
+
@clodo_servicenet = options[:clodo_servicenet]
|
|
82
|
+
@clodo_auth_token = options[:clodo_auth_token]
|
|
83
|
+
@clodo_management_url = options[:clodo_management_url]
|
|
84
|
+
@clodo_must_reauthenticate = false
|
|
85
|
+
authenticate
|
|
86
|
+
Excon.ssl_verify_peer = false if options[:clodo_servicenet] == true
|
|
87
|
+
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", options[:persistent])
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def reload
|
|
91
|
+
@connection.reset
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def request(params)
|
|
95
|
+
begin
|
|
96
|
+
response = @connection.request(params.merge({
|
|
97
|
+
:headers => {
|
|
98
|
+
'Content-Type' => 'application/json',
|
|
99
|
+
'Accept' => 'application/json',
|
|
100
|
+
'X-Auth-Token' => @auth_token
|
|
101
|
+
}.merge!(params[:headers] || {}),
|
|
102
|
+
:host => @host,
|
|
103
|
+
:path => "#{@path}/#{params[:path]}"
|
|
104
|
+
}))
|
|
105
|
+
rescue Excon::Errors::Unauthorized => error
|
|
106
|
+
if error.response.body != 'Bad username or password' # token expiration
|
|
107
|
+
@clodo_must_reauthenticate = true
|
|
108
|
+
authenticate
|
|
109
|
+
retry
|
|
110
|
+
else # bad credentials
|
|
111
|
+
raise error
|
|
112
|
+
end
|
|
113
|
+
rescue Excon::Errors::HTTPStatusError => error
|
|
114
|
+
raise case error
|
|
115
|
+
when Excon::Errors::NotFound
|
|
116
|
+
Fog::Compute::Clodo::NotFound.slurp(error)
|
|
117
|
+
else
|
|
118
|
+
error
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
unless response.body.empty?
|
|
122
|
+
response.body = MultiJson.decode(response.body)
|
|
123
|
+
end
|
|
124
|
+
response
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
private
|
|
128
|
+
|
|
129
|
+
def authenticate
|
|
130
|
+
if @clodo_must_reauthenticate || @clodo_auth_token.nil?
|
|
131
|
+
options = {
|
|
132
|
+
:clodo_api_key => @clodo_api_key,
|
|
133
|
+
:clodo_username => @clodo_username,
|
|
134
|
+
:clodo_auth_url => @clodo_auth_url
|
|
135
|
+
}
|
|
136
|
+
credentials = Fog::Clodo.authenticate(options)
|
|
137
|
+
@auth_token = credentials['X-Auth-Token']
|
|
138
|
+
uri = URI.parse(credentials['X-Server-Management-Url'])
|
|
139
|
+
else
|
|
140
|
+
@auth_token = @clodo_auth_token
|
|
141
|
+
uri = URI.parse(@clodo_management_url)
|
|
142
|
+
end
|
|
143
|
+
@host = @clodo_servicenet == true ? "snet-#{uri.host}" : uri.host
|
|
144
|
+
@path = uri.path
|
|
145
|
+
@port = uri.port
|
|
146
|
+
@scheme = uri.scheme
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Compute
|
|
5
|
+
class Clodo
|
|
6
|
+
|
|
7
|
+
class Image < Fog::Model
|
|
8
|
+
|
|
9
|
+
identity :id
|
|
10
|
+
|
|
11
|
+
attribute :name
|
|
12
|
+
attribute :vps_type
|
|
13
|
+
attribute :status
|
|
14
|
+
attribute :os_type
|
|
15
|
+
attribute :os_bits
|
|
16
|
+
attribute :os_hvm
|
|
17
|
+
|
|
18
|
+
def initialize(new_attributes)
|
|
19
|
+
super(new_attributes)
|
|
20
|
+
merge_attributes(new_attributes['_attr']) if new_attributes['_attr']
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def ready?
|
|
24
|
+
status == 'ACTIVE'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/clodo/models/compute/image'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Compute
|
|
6
|
+
class Clodo
|
|
7
|
+
|
|
8
|
+
class Images < Fog::Collection
|
|
9
|
+
|
|
10
|
+
model Fog::Compute::Clodo::Image
|
|
11
|
+
|
|
12
|
+
def all
|
|
13
|
+
data = connection.list_images_detail.body['images']
|
|
14
|
+
load(data)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def get(image_id)
|
|
18
|
+
image = connection.get_image_details(image_id).body['image']
|
|
19
|
+
new(image) if image
|
|
20
|
+
rescue Fog::Compute::Clodo::NotFound
|
|
21
|
+
nil
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Compute
|
|
5
|
+
class Clodo
|
|
6
|
+
|
|
7
|
+
class Server < Fog::Model
|
|
8
|
+
|
|
9
|
+
identity :id
|
|
10
|
+
|
|
11
|
+
attribute :addresses
|
|
12
|
+
attribute :name
|
|
13
|
+
attribute :image_id, :aliases => 'imageId'
|
|
14
|
+
attribute :type
|
|
15
|
+
attribute :state, :aliases => 'status'
|
|
16
|
+
attribute :type
|
|
17
|
+
attribute :vps_memory
|
|
18
|
+
attribute :vps_memory_max
|
|
19
|
+
attribute :vps_os_title
|
|
20
|
+
attribute :vps_os_bits
|
|
21
|
+
attribute :vps_os_type
|
|
22
|
+
attribute :vps_vnc
|
|
23
|
+
attribute :vps_cpu_load
|
|
24
|
+
attribute :vps_cpu_max
|
|
25
|
+
attribute :vps_cpu_1h_min
|
|
26
|
+
attribute :vps_cpu_1h_max
|
|
27
|
+
attribute :vps_mem_load
|
|
28
|
+
attribute :vps_mem_max
|
|
29
|
+
attribute :vps_mem_1h_min
|
|
30
|
+
attribute :vps_mem_1h_max
|
|
31
|
+
attribute :vps_hdd_load
|
|
32
|
+
attribute :vps_hdd_max
|
|
33
|
+
attribute :vps_traf_rx
|
|
34
|
+
attribute :vps_traf_tx
|
|
35
|
+
attribute :vps_createdate
|
|
36
|
+
attribute :vps_billingdate
|
|
37
|
+
attribute :vps_update
|
|
38
|
+
attribute :vps_update_days
|
|
39
|
+
attribute :vps_root_pass, :aliases => ['adminPass','password']
|
|
40
|
+
attribute :vps_user_pass
|
|
41
|
+
attribute :vps_vnc_pass
|
|
42
|
+
|
|
43
|
+
attr_writer :private_key, :private_key_path, :public_key, :public_key_path, :username
|
|
44
|
+
|
|
45
|
+
def initialize(attributes={})
|
|
46
|
+
self.image_id ||= attributes[:vps_os] ? attributes[:vps_os] : 666
|
|
47
|
+
super attributes
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def destroy
|
|
51
|
+
requires :id
|
|
52
|
+
connection.delete_server(id)
|
|
53
|
+
true
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def image
|
|
57
|
+
requires :image_id
|
|
58
|
+
image_id # API does not support image details request. :-(
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def private_ip_address
|
|
62
|
+
nil
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def private_key_path
|
|
66
|
+
@private_key_path ||= Fog.credentials[:private_key_path]
|
|
67
|
+
@private_key_path &&= File.expand_path(@private_key_path)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def private_key
|
|
71
|
+
@private_key ||= private_key_path && File.read(private_key_path)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def public_ip_address
|
|
75
|
+
pubaddrs = addresses && addresses['public'] ? addresses['public'].select {|ip| ip['primary_ip']} : nil
|
|
76
|
+
pubaddrs && !pubaddrs.empty? ? pubaddrs.first['ip'] : nil
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def add_ip_address
|
|
80
|
+
connection.add_ip_address(id)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def move_ip_address(ip_address)
|
|
84
|
+
connection.move_ip_address(id, ip_address)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def delete_ip_address(ip_address)
|
|
88
|
+
connection.delete_ip_address(id, ip_address)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def public_key_path
|
|
92
|
+
@public_key_path ||= Fog.credentials[:public_key_path]
|
|
93
|
+
@public_key_path &&= File.expand_path(@public_key_path)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def public_key
|
|
97
|
+
@public_key ||= public_key_path && File.read(public_key_path)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def ready?
|
|
101
|
+
self.state == 'is_running'
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def reboot(type = 'SOFT')
|
|
105
|
+
requires :id
|
|
106
|
+
connection.reboot_server(id, type)
|
|
107
|
+
true
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def save
|
|
111
|
+
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
|
|
112
|
+
requires :image_id
|
|
113
|
+
data = connection.create_server(image_id, attributes)
|
|
114
|
+
merge_attributes(data.body['server'])
|
|
115
|
+
true
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def setup(credentials = {})
|
|
119
|
+
requires :public_ip_address, :identity, :public_key, :username
|
|
120
|
+
Fog::SSH.new(public_ip_address, username, credentials).run([
|
|
121
|
+
%{mkdir .ssh},
|
|
122
|
+
%{echo "#{public_key}" >> ~/.ssh/authorized_keys},
|
|
123
|
+
%{passwd -l #{username}},
|
|
124
|
+
%{echo "#{MultiJson.encode(attributes)}" >> ~/attributes.json},
|
|
125
|
+
])
|
|
126
|
+
rescue Errno::ECONNREFUSED
|
|
127
|
+
sleep(1)
|
|
128
|
+
retry
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def ssh(commands)
|
|
132
|
+
requires :public_ip_address, :identity, :username
|
|
133
|
+
|
|
134
|
+
options = {}
|
|
135
|
+
options[:key_data] = [private_key] if private_key
|
|
136
|
+
options[:password] = password if password
|
|
137
|
+
Fog::SSH.new(public_ip_address, username, options).run(commands)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def scp(local_path, remote_path, upload_options = {})
|
|
141
|
+
requires :public_ip_address, :username
|
|
142
|
+
|
|
143
|
+
scp_options = {}
|
|
144
|
+
scp_options[:key_data] = [private_key] if private_key
|
|
145
|
+
Fog::SCP.new(public_ip_address, username, scp_options).upload(local_path, remote_path, upload_options)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def username
|
|
149
|
+
@username ||= 'root'
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def password
|
|
153
|
+
vps_root_pass
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
private
|
|
157
|
+
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/clodo/models/compute/server'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Compute
|
|
6
|
+
class Clodo
|
|
7
|
+
|
|
8
|
+
class Servers < Fog::Collection
|
|
9
|
+
|
|
10
|
+
model Fog::Compute::Clodo::Server
|
|
11
|
+
|
|
12
|
+
def all
|
|
13
|
+
data = connection.list_servers_detail.body['servers']
|
|
14
|
+
load(data)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def bootstrap(new_attributes = {})
|
|
18
|
+
server = create(new_attributes)
|
|
19
|
+
server.wait_for { ready? }
|
|
20
|
+
server.setup(:password => server.password)
|
|
21
|
+
server
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def get(server_id)
|
|
25
|
+
if server = connection.get_server_details(server_id).body['server']
|
|
26
|
+
new(server)
|
|
27
|
+
end
|
|
28
|
+
rescue Fog::Compute::Clodo::NotFound
|
|
29
|
+
nil
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class Clodo
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
# Bye new IP-address for specified server
|
|
7
|
+
# ==== Paramaters
|
|
8
|
+
# * server_id<~Integer> - Id of server to bye IP for
|
|
9
|
+
#
|
|
10
|
+
# ==== Returns
|
|
11
|
+
# * response<~Excon::Response>
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
def add_ip_address(server_id)
|
|
15
|
+
request(
|
|
16
|
+
:expects => [204],
|
|
17
|
+
:method => 'PUT',
|
|
18
|
+
:path => "servers/#{server_id}/ips"
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class Mock
|
|
24
|
+
def add_ip_address(server_id)
|
|
25
|
+
|
|
26
|
+
raise Excon::Errors::BadRequest.new(
|
|
27
|
+
"Invalid image ID"
|
|
28
|
+
) unless server_id > 0
|
|
29
|
+
|
|
30
|
+
data = {
|
|
31
|
+
'primary_ip' => false,
|
|
32
|
+
'isp' => false,
|
|
33
|
+
'ip' => "66.6.#{rand(255)}.#{rand(255)}"
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
raise Excon::Errors::BadRequest unless self.data[:servers][server_id]
|
|
37
|
+
|
|
38
|
+
raise Excon::Errors::BadRequest.new "No addresses" unless self.data[:servers][server_id]['addresses']
|
|
39
|
+
|
|
40
|
+
self.data[:servers][server_id]['addresses']['public'] << data
|
|
41
|
+
|
|
42
|
+
response = Excon::Response.new
|
|
43
|
+
response.status = 204
|
|
44
|
+
response
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class Clodo
|
|
4
|
+
class Real
|
|
5
|
+
# Input:
|
|
6
|
+
# vps_title - VDS title to display in VDS list
|
|
7
|
+
# vps_type - VDS type (VirtualServer,ScaleServer)
|
|
8
|
+
# vps_memory - memory size in megabytes (for ScaleServer - low limit)
|
|
9
|
+
# vps_memory_max - maximum number of ScaleServer memory megabytes to scale up.
|
|
10
|
+
# vps_hdd - Virtual HDD size im gigabytes.
|
|
11
|
+
# vps_admin - support level (1 - usual&free, 2 - extended, 3 - VIP)
|
|
12
|
+
# vps_os - OS ID to install
|
|
13
|
+
# Output:
|
|
14
|
+
# id - VDS ID
|
|
15
|
+
# name - VDS title
|
|
16
|
+
# imageId - OS ID
|
|
17
|
+
# adminPass - root password
|
|
18
|
+
|
|
19
|
+
def create_server(image_id, options = {})
|
|
20
|
+
data = {
|
|
21
|
+
'server' => {
|
|
22
|
+
:vps_os => image_id,
|
|
23
|
+
:vps_hdd => options[:vps_hdd]?options[:vps_hdd]:5,
|
|
24
|
+
:vps_memory => options[:vps_memory]?options[:vps_memory]:256,
|
|
25
|
+
:vps_memory_max => options[:vps_memory_max]?options[:vps_memory_max]:1024,
|
|
26
|
+
:vps_admin => options[:vps_admin]?options[:vps_admin]:1
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
data['server'].merge! options if options
|
|
31
|
+
|
|
32
|
+
request(
|
|
33
|
+
:body => MultiJson.encode(data),
|
|
34
|
+
:expects => [200, 202],
|
|
35
|
+
:method => 'POST',
|
|
36
|
+
:path => 'servers'
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
class Mock
|
|
43
|
+
def create_server(image_id, options = {})
|
|
44
|
+
|
|
45
|
+
raise Excon::Errors::BadRequest.new("Invalid image ID") unless image_id > 0
|
|
46
|
+
|
|
47
|
+
response = Excon::Response.new
|
|
48
|
+
response.status = 202
|
|
49
|
+
|
|
50
|
+
id = Fog::Mock.random_numbers(6).to_i
|
|
51
|
+
|
|
52
|
+
data = {
|
|
53
|
+
'id' => id,
|
|
54
|
+
'imageId' => "#{image_id}",
|
|
55
|
+
'name' => options['name'] || "VPS #{rand(999)}",
|
|
56
|
+
'adminPass' => '23ryh8udbcbyt'
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
self.data[:last_modified][:servers][id] = Time.now
|
|
60
|
+
self.data[:servers][id] = {
|
|
61
|
+
'id' => "#{id}",
|
|
62
|
+
'imageId' => data['imageId'],
|
|
63
|
+
'name' => data['name'],
|
|
64
|
+
'vps_os_title' => "OSTitle",
|
|
65
|
+
'vps_root_pass' => data['adminPass'],
|
|
66
|
+
'status' => "is_running",
|
|
67
|
+
'addresses' => {'public' =>[{
|
|
68
|
+
'primary_ip' => true,
|
|
69
|
+
'isp' => false,
|
|
70
|
+
'ip' => '66.6.6.66'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
'primary_ip' => false,
|
|
74
|
+
'isp' => false,
|
|
75
|
+
'ip' => '13.13.13.13'
|
|
76
|
+
}]},
|
|
77
|
+
'vps_createdate' => "#{Time.now}",
|
|
78
|
+
'vps_hdd_max' => "5",
|
|
79
|
+
'vps_traff' => nil,
|
|
80
|
+
'vps_mem_1h_max' => "0",
|
|
81
|
+
'vps_mem_load' => "0",
|
|
82
|
+
'vps_user_pass' => "wer45345ht",
|
|
83
|
+
'vps_vnc_pass' => "bi65tdfyb",
|
|
84
|
+
'vps_adddate' => "#{Time.now}",
|
|
85
|
+
'vps_update' => "#{Time.now}",
|
|
86
|
+
'vps_mem_1h_min' => "0",
|
|
87
|
+
'vps_mem_1h_avg' => nil,
|
|
88
|
+
'vps_memory_max' => options['vps_memory_max'] || "512",
|
|
89
|
+
'vps_os_version' => "6.6.6",
|
|
90
|
+
'vps_cpu_1h_max' => "0",
|
|
91
|
+
'vps_hdd_load' => "0",
|
|
92
|
+
'vps_disk_load' => "0",
|
|
93
|
+
'vps_os_type' => options['vps_os_type'] || "VirtualServer",
|
|
94
|
+
'type' => options['vps_os_type'] || "VirtualServer",
|
|
95
|
+
'vps_memory' => options['vps_memory'] || "512",
|
|
96
|
+
'vps_cpu_load' => "0",
|
|
97
|
+
'vps_update_days' => "0",
|
|
98
|
+
'vps_os_bits' => "64",
|
|
99
|
+
'vps_vnc' => "6.6.6.6:5900",
|
|
100
|
+
'vps_cpu_max' => "0",
|
|
101
|
+
'vps_cpu_1h_min' => "0",
|
|
102
|
+
'vps_cpu_1h_avg' => nil
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
response.body = { 'server' => data }
|
|
106
|
+
response
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|