fog-rackspace 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/fog-rackspace.gemspec +32 -0
- data/lib/fog/rackspace.rb +25 -0
- data/lib/fog/rackspace/auto_scale.rb +134 -0
- data/lib/fog/rackspace/block_storage.rb +175 -0
- data/lib/fog/rackspace/cdn.rb +198 -0
- data/lib/fog/rackspace/cdn_v2.rb +123 -0
- data/lib/fog/rackspace/compute.rb +256 -0
- data/lib/fog/rackspace/compute_v2.rb +251 -0
- data/lib/fog/rackspace/core.rb +150 -0
- data/lib/fog/rackspace/databases.rb +164 -0
- data/lib/fog/rackspace/dns.rb +172 -0
- data/lib/fog/rackspace/docs/auto_scale.md +503 -0
- data/lib/fog/rackspace/docs/block_storage.md +417 -0
- data/lib/fog/rackspace/docs/cdn_v2.md +351 -0
- data/lib/fog/rackspace/docs/compute_v2.md +723 -0
- data/lib/fog/rackspace/docs/getting_started.md +88 -0
- data/lib/fog/rackspace/docs/networking_v2.md +422 -0
- data/lib/fog/rackspace/docs/orchestration.md +356 -0
- data/lib/fog/rackspace/docs/queues.md +312 -0
- data/lib/fog/rackspace/docs/storage.md +557 -0
- data/lib/fog/rackspace/errors.rb +33 -0
- data/lib/fog/rackspace/examples/README.md +47 -0
- data/lib/fog/rackspace/examples/auto_scale/add_policy.rb +66 -0
- data/lib/fog/rackspace/examples/auto_scale/add_webhook.rb +74 -0
- data/lib/fog/rackspace/examples/auto_scale/create_scaling_group.rb +111 -0
- data/lib/fog/rackspace/examples/auto_scale/delete_policy.rb +71 -0
- data/lib/fog/rackspace/examples/auto_scale/delete_scaling_group.rb +59 -0
- data/lib/fog/rackspace/examples/auto_scale/delete_webhook.rb +89 -0
- data/lib/fog/rackspace/examples/block_storage/create_snapshot.rb +116 -0
- data/lib/fog/rackspace/examples/block_storage/create_volume.rb +58 -0
- data/lib/fog/rackspace/examples/block_storage/delete_volume.rb +53 -0
- data/lib/fog/rackspace/examples/compute_v2/bootstrap_server.rb +96 -0
- data/lib/fog/rackspace/examples/compute_v2/create_image.rb +59 -0
- data/lib/fog/rackspace/examples/compute_v2/create_network.rb +81 -0
- data/lib/fog/rackspace/examples/compute_v2/create_server.rb +87 -0
- data/lib/fog/rackspace/examples/compute_v2/delete_image.rb +60 -0
- data/lib/fog/rackspace/examples/compute_v2/delete_network.rb +78 -0
- data/lib/fog/rackspace/examples/compute_v2/delete_server.rb +55 -0
- data/lib/fog/rackspace/examples/compute_v2/detach_volume.rb +93 -0
- data/lib/fog/rackspace/examples/compute_v2/resize_server.rb +106 -0
- data/lib/fog/rackspace/examples/compute_v2/server_attachments.rb +68 -0
- data/lib/fog/rackspace/examples/compute_v2/server_metadata.rb +83 -0
- data/lib/fog/rackspace/examples/queues/claim_messages.rb +60 -0
- data/lib/fog/rackspace/examples/queues/create_queue.rb +45 -0
- data/lib/fog/rackspace/examples/queues/delete_message.rb +71 -0
- data/lib/fog/rackspace/examples/queues/delete_queue.rb +53 -0
- data/lib/fog/rackspace/examples/queues/list_messages.rb +64 -0
- data/lib/fog/rackspace/examples/queues/post_message.rb +59 -0
- data/lib/fog/rackspace/examples/storage/create_cdn_directory.rb +43 -0
- data/lib/fog/rackspace/examples/storage/create_private_directory.rb +43 -0
- data/lib/fog/rackspace/examples/storage/delete_directory.rb +62 -0
- data/lib/fog/rackspace/examples/storage/delete_file.rb +70 -0
- data/lib/fog/rackspace/examples/storage/download_file.rb +75 -0
- data/lib/fog/rackspace/examples/storage/lorem.txt +1 -0
- data/lib/fog/rackspace/examples/storage/storage_metadata.rb +76 -0
- data/lib/fog/rackspace/examples/storage/upload_file.rb +44 -0
- data/lib/fog/rackspace/examples/storage/upload_large_files.rb +101 -0
- data/lib/fog/rackspace/identity.rb +83 -0
- data/lib/fog/rackspace/load_balancers.rb +206 -0
- data/lib/fog/rackspace/mock_data.rb +252 -0
- data/lib/fog/rackspace/models/auto_scale/group.rb +214 -0
- data/lib/fog/rackspace/models/auto_scale/group_builder.rb +86 -0
- data/lib/fog/rackspace/models/auto_scale/group_config.rb +76 -0
- data/lib/fog/rackspace/models/auto_scale/groups.rb +45 -0
- data/lib/fog/rackspace/models/auto_scale/launch_config.rb +61 -0
- data/lib/fog/rackspace/models/auto_scale/policies.rb +65 -0
- data/lib/fog/rackspace/models/auto_scale/policy.rb +220 -0
- data/lib/fog/rackspace/models/auto_scale/webhook.rb +116 -0
- data/lib/fog/rackspace/models/auto_scale/webhooks.rb +62 -0
- data/lib/fog/rackspace/models/block_storage/snapshot.rb +93 -0
- data/lib/fog/rackspace/models/block_storage/snapshots.rb +39 -0
- data/lib/fog/rackspace/models/block_storage/volume.rb +135 -0
- data/lib/fog/rackspace/models/block_storage/volume_type.rb +19 -0
- data/lib/fog/rackspace/models/block_storage/volume_types.rb +39 -0
- data/lib/fog/rackspace/models/block_storage/volumes.rb +39 -0
- data/lib/fog/rackspace/models/cdn_v2/flavor.rb +14 -0
- data/lib/fog/rackspace/models/cdn_v2/flavors.rb +24 -0
- data/lib/fog/rackspace/models/cdn_v2/service.rb +66 -0
- data/lib/fog/rackspace/models/cdn_v2/services.rb +24 -0
- data/lib/fog/rackspace/models/compute/flavor.rb +42 -0
- data/lib/fog/rackspace/models/compute/flavors.rb +24 -0
- data/lib/fog/rackspace/models/compute/image.rb +44 -0
- data/lib/fog/rackspace/models/compute/images.rb +31 -0
- data/lib/fog/rackspace/models/compute/server.rb +102 -0
- data/lib/fog/rackspace/models/compute/servers.rb +32 -0
- data/lib/fog/rackspace/models/compute_v2/attachment.rb +61 -0
- data/lib/fog/rackspace/models/compute_v2/attachments.rb +38 -0
- data/lib/fog/rackspace/models/compute_v2/flavor.rb +33 -0
- data/lib/fog/rackspace/models/compute_v2/flavors.rb +39 -0
- data/lib/fog/rackspace/models/compute_v2/image.rb +117 -0
- data/lib/fog/rackspace/models/compute_v2/images.rb +73 -0
- data/lib/fog/rackspace/models/compute_v2/key_pair.rb +54 -0
- data/lib/fog/rackspace/models/compute_v2/key_pairs.rb +40 -0
- data/lib/fog/rackspace/models/compute_v2/meta_parent.rb +40 -0
- data/lib/fog/rackspace/models/compute_v2/metadata.rb +108 -0
- data/lib/fog/rackspace/models/compute_v2/metadatum.rb +39 -0
- data/lib/fog/rackspace/models/compute_v2/network.rb +27 -0
- data/lib/fog/rackspace/models/compute_v2/networks.rb +23 -0
- data/lib/fog/rackspace/models/compute_v2/server.rb +655 -0
- data/lib/fog/rackspace/models/compute_v2/servers.rb +64 -0
- data/lib/fog/rackspace/models/compute_v2/virtual_interface.rb +85 -0
- data/lib/fog/rackspace/models/compute_v2/virtual_interfaces.rb +46 -0
- data/lib/fog/rackspace/models/databases/database.rb +43 -0
- data/lib/fog/rackspace/models/databases/databases.rb +30 -0
- data/lib/fog/rackspace/models/databases/flavor.rb +15 -0
- data/lib/fog/rackspace/models/databases/flavors.rb +24 -0
- data/lib/fog/rackspace/models/databases/instance.rb +104 -0
- data/lib/fog/rackspace/models/databases/instances.rb +24 -0
- data/lib/fog/rackspace/models/databases/user.rb +33 -0
- data/lib/fog/rackspace/models/databases/users.rb +30 -0
- data/lib/fog/rackspace/models/dns/callback.rb +28 -0
- data/lib/fog/rackspace/models/dns/record.rb +98 -0
- data/lib/fog/rackspace/models/dns/records.rb +58 -0
- data/lib/fog/rackspace/models/dns/zone.rb +66 -0
- data/lib/fog/rackspace/models/dns/zones.rb +74 -0
- data/lib/fog/rackspace/models/identity/credential.rb +13 -0
- data/lib/fog/rackspace/models/identity/credentials.rb +32 -0
- data/lib/fog/rackspace/models/identity/role.rb +14 -0
- data/lib/fog/rackspace/models/identity/roles.rb +31 -0
- data/lib/fog/rackspace/models/identity/service_catalog.rb +84 -0
- data/lib/fog/rackspace/models/identity/tenant.rb +15 -0
- data/lib/fog/rackspace/models/identity/tenants.rb +27 -0
- data/lib/fog/rackspace/models/identity/user.rb +53 -0
- data/lib/fog/rackspace/models/identity/users.rb +35 -0
- data/lib/fog/rackspace/models/load_balancers/access_rule.rb +38 -0
- data/lib/fog/rackspace/models/load_balancers/access_rules.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +286 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancers.rb +25 -0
- data/lib/fog/rackspace/models/load_balancers/node.rb +65 -0
- data/lib/fog/rackspace/models/load_balancers/nodes.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ip.rb +34 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ips.rb +32 -0
- data/lib/fog/rackspace/models/monitoring/agent_token.rb +38 -0
- data/lib/fog/rackspace/models/monitoring/agent_tokens.rb +29 -0
- data/lib/fog/rackspace/models/monitoring/alarm.rb +58 -0
- data/lib/fog/rackspace/models/monitoring/alarm_example.rb +24 -0
- data/lib/fog/rackspace/models/monitoring/alarm_examples.rb +29 -0
- data/lib/fog/rackspace/models/monitoring/alarms.rb +41 -0
- data/lib/fog/rackspace/models/monitoring/base.rb +29 -0
- data/lib/fog/rackspace/models/monitoring/check.rb +72 -0
- data/lib/fog/rackspace/models/monitoring/check_type.rb +15 -0
- data/lib/fog/rackspace/models/monitoring/check_types.rb +21 -0
- data/lib/fog/rackspace/models/monitoring/checks.rb +41 -0
- data/lib/fog/rackspace/models/monitoring/data_point.rb +18 -0
- data/lib/fog/rackspace/models/monitoring/data_points.rb +47 -0
- data/lib/fog/rackspace/models/monitoring/entities.rb +47 -0
- data/lib/fog/rackspace/models/monitoring/entity.rb +62 -0
- data/lib/fog/rackspace/models/monitoring/metric.rb +22 -0
- data/lib/fog/rackspace/models/monitoring/metrics.rb +25 -0
- data/lib/fog/rackspace/models/monitoring/notification.rb +40 -0
- data/lib/fog/rackspace/models/monitoring/notifications.rb +28 -0
- data/lib/fog/rackspace/models/networking/network.rb +27 -0
- data/lib/fog/rackspace/models/networking/networks.rb +23 -0
- data/lib/fog/rackspace/models/networking/virtual_interface.rb +85 -0
- data/lib/fog/rackspace/models/networking/virtual_interfaces.rb +45 -0
- data/lib/fog/rackspace/models/networking_v2/network.rb +36 -0
- data/lib/fog/rackspace/models/networking_v2/networks.rb +23 -0
- data/lib/fog/rackspace/models/networking_v2/port.rb +39 -0
- data/lib/fog/rackspace/models/networking_v2/ports.rb +23 -0
- data/lib/fog/rackspace/models/networking_v2/security_group.rb +32 -0
- data/lib/fog/rackspace/models/networking_v2/security_group_rule.rb +38 -0
- data/lib/fog/rackspace/models/networking_v2/security_group_rules.rb +23 -0
- data/lib/fog/rackspace/models/networking_v2/security_groups.rb +23 -0
- data/lib/fog/rackspace/models/networking_v2/subnet.rb +38 -0
- data/lib/fog/rackspace/models/networking_v2/subnets.rb +23 -0
- data/lib/fog/rackspace/models/orchestration/event.rb +18 -0
- data/lib/fog/rackspace/models/orchestration/events.rb +28 -0
- data/lib/fog/rackspace/models/orchestration/resource.rb +30 -0
- data/lib/fog/rackspace/models/orchestration/resource_schemas.rb +16 -0
- data/lib/fog/rackspace/models/orchestration/resources.rb +35 -0
- data/lib/fog/rackspace/models/orchestration/stack.rb +48 -0
- data/lib/fog/rackspace/models/orchestration/stacks.rb +40 -0
- data/lib/fog/rackspace/models/orchestration/template.rb +13 -0
- data/lib/fog/rackspace/models/orchestration/templates.rb +31 -0
- data/lib/fog/rackspace/models/queues/claim.rb +139 -0
- data/lib/fog/rackspace/models/queues/claims.rb +64 -0
- data/lib/fog/rackspace/models/queues/message.rb +88 -0
- data/lib/fog/rackspace/models/queues/messages.rb +90 -0
- data/lib/fog/rackspace/models/queues/queue.rb +135 -0
- data/lib/fog/rackspace/models/queues/queues.rb +46 -0
- data/lib/fog/rackspace/models/storage/account.rb +50 -0
- data/lib/fog/rackspace/models/storage/directories.rb +62 -0
- data/lib/fog/rackspace/models/storage/directory.rb +194 -0
- data/lib/fog/rackspace/models/storage/file.rb +286 -0
- data/lib/fog/rackspace/models/storage/files.rb +201 -0
- data/lib/fog/rackspace/models/storage/metadata.rb +165 -0
- data/lib/fog/rackspace/monitoring.rb +184 -0
- data/lib/fog/rackspace/networking.rb +192 -0
- data/lib/fog/rackspace/networking_v2.rb +222 -0
- data/lib/fog/rackspace/orchestration.rb +227 -0
- data/lib/fog/rackspace/queues.rb +406 -0
- data/lib/fog/rackspace/requests/auto_scale/create_group.rb +58 -0
- data/lib/fog/rackspace/requests/auto_scale/create_policy.rb +42 -0
- data/lib/fog/rackspace/requests/auto_scale/create_webhook.rb +54 -0
- data/lib/fog/rackspace/requests/auto_scale/delete_group.rb +22 -0
- data/lib/fog/rackspace/requests/auto_scale/delete_policy.rb +29 -0
- data/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb +33 -0
- data/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb +21 -0
- data/lib/fog/rackspace/requests/auto_scale/execute_policy.rb +21 -0
- data/lib/fog/rackspace/requests/auto_scale/get_group.rb +26 -0
- data/lib/fog/rackspace/requests/auto_scale/get_group_config.rb +27 -0
- data/lib/fog/rackspace/requests/auto_scale/get_group_state.rb +58 -0
- data/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb +27 -0
- data/lib/fog/rackspace/requests/auto_scale/get_policy.rb +31 -0
- data/lib/fog/rackspace/requests/auto_scale/get_webhook.rb +36 -0
- data/lib/fog/rackspace/requests/auto_scale/list_groups.rb +34 -0
- data/lib/fog/rackspace/requests/auto_scale/list_policies.rb +22 -0
- data/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb +31 -0
- data/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb +22 -0
- data/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb +21 -0
- data/lib/fog/rackspace/requests/auto_scale/update_group_config.rb +37 -0
- data/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb +34 -0
- data/lib/fog/rackspace/requests/auto_scale/update_policy.rb +31 -0
- data/lib/fog/rackspace/requests/auto_scale/update_webhook.rb +41 -0
- data/lib/fog/rackspace/requests/block_storage/create_snapshot.rb +77 -0
- data/lib/fog/rackspace/requests/block_storage/create_volume.rb +96 -0
- data/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb +31 -0
- data/lib/fog/rackspace/requests/block_storage/delete_volume.rb +42 -0
- data/lib/fog/rackspace/requests/block_storage/get_snapshot.rb +45 -0
- data/lib/fog/rackspace/requests/block_storage/get_volume.rb +55 -0
- data/lib/fog/rackspace/requests/block_storage/get_volume_type.rb +41 -0
- data/lib/fog/rackspace/requests/block_storage/list_snapshots.rb +39 -0
- data/lib/fog/rackspace/requests/block_storage/list_volume_types.rb +34 -0
- data/lib/fog/rackspace/requests/block_storage/list_volumes.rb +42 -0
- data/lib/fog/rackspace/requests/cdn/delete_object.rb +39 -0
- data/lib/fog/rackspace/requests/cdn/get_containers.rb +66 -0
- data/lib/fog/rackspace/requests/cdn/head_container.rb +58 -0
- data/lib/fog/rackspace/requests/cdn/post_container.rb +52 -0
- data/lib/fog/rackspace/requests/cdn/put_container.rb +52 -0
- data/lib/fog/rackspace/requests/cdn_v2/create_service.rb +10 -0
- data/lib/fog/rackspace/requests/cdn_v2/delete_assets.rb +12 -0
- data/lib/fog/rackspace/requests/cdn_v2/delete_service.rb +9 -0
- data/lib/fog/rackspace/requests/cdn_v2/get_flavor.rb +9 -0
- data/lib/fog/rackspace/requests/cdn_v2/get_home_document.rb +9 -0
- data/lib/fog/rackspace/requests/cdn_v2/get_ping.rb +10 -0
- data/lib/fog/rackspace/requests/cdn_v2/get_service.rb +9 -0
- data/lib/fog/rackspace/requests/cdn_v2/list_flavors.rb +9 -0
- data/lib/fog/rackspace/requests/cdn_v2/list_services.rb +9 -0
- data/lib/fog/rackspace/requests/cdn_v2/update_service.rb +13 -0
- data/lib/fog/rackspace/requests/compute/confirm_resized_server.rb +30 -0
- data/lib/fog/rackspace/requests/compute/create_image.rb +56 -0
- data/lib/fog/rackspace/requests/compute/create_server.rb +90 -0
- data/lib/fog/rackspace/requests/compute/delete_image.rb +40 -0
- data/lib/fog/rackspace/requests/compute/delete_server.rb +39 -0
- data/lib/fog/rackspace/requests/compute/get_flavor_details.rb +48 -0
- data/lib/fog/rackspace/requests/compute/get_image_details.rb +25 -0
- data/lib/fog/rackspace/requests/compute/get_server_details.rb +48 -0
- data/lib/fog/rackspace/requests/compute/list_addresses.rb +39 -0
- data/lib/fog/rackspace/requests/compute/list_flavors.rb +41 -0
- data/lib/fog/rackspace/requests/compute/list_flavors_detail.rb +43 -0
- data/lib/fog/rackspace/requests/compute/list_images.rb +36 -0
- data/lib/fog/rackspace/requests/compute/list_images_detail.rb +45 -0
- data/lib/fog/rackspace/requests/compute/list_private_addresses.rb +37 -0
- data/lib/fog/rackspace/requests/compute/list_public_addresses.rb +37 -0
- data/lib/fog/rackspace/requests/compute/list_servers.rb +37 -0
- data/lib/fog/rackspace/requests/compute/list_servers_detail.rb +52 -0
- data/lib/fog/rackspace/requests/compute/reboot_server.rb +26 -0
- data/lib/fog/rackspace/requests/compute/resize_server.rb +35 -0
- data/lib/fog/rackspace/requests/compute/revert_resized_server.rb +31 -0
- data/lib/fog/rackspace/requests/compute/server_action.rb +23 -0
- data/lib/fog/rackspace/requests/compute/update_server.rb +41 -0
- data/lib/fog/rackspace/requests/compute_v2/attach_volume.rb +78 -0
- data/lib/fog/rackspace/requests/compute_v2/change_server_password.rb +38 -0
- data/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb +41 -0
- data/lib/fog/rackspace/requests/compute_v2/create_image.rb +97 -0
- data/lib/fog/rackspace/requests/compute_v2/create_keypair.rb +62 -0
- data/lib/fog/rackspace/requests/compute_v2/create_network.rb +36 -0
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +243 -0
- data/lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb +30 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb +39 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_image.rb +32 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb +34 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb +36 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_network.rb +21 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +35 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb +23 -0
- data/lib/fog/rackspace/requests/compute_v2/get_attachment.rb +38 -0
- data/lib/fog/rackspace/requests/compute_v2/get_flavor.rb +43 -0
- data/lib/fog/rackspace/requests/compute_v2/get_image.rb +47 -0
- data/lib/fog/rackspace/requests/compute_v2/get_keypair.rb +39 -0
- data/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb +38 -0
- data/lib/fog/rackspace/requests/compute_v2/get_network.rb +21 -0
- data/lib/fog/rackspace/requests/compute_v2/get_server.rb +63 -0
- data/lib/fog/rackspace/requests/compute_v2/get_vnc_console.rb +45 -0
- data/lib/fog/rackspace/requests/compute_v2/list_addresses.rb +39 -0
- data/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb +48 -0
- data/lib/fog/rackspace/requests/compute_v2/list_attachments.rb +37 -0
- data/lib/fog/rackspace/requests/compute_v2/list_flavors.rb +35 -0
- data/lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb +38 -0
- data/lib/fog/rackspace/requests/compute_v2/list_images.rb +45 -0
- data/lib/fog/rackspace/requests/compute_v2/list_images_detail.rb +52 -0
- data/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb +35 -0
- data/lib/fog/rackspace/requests/compute_v2/list_metadata.rb +37 -0
- data/lib/fog/rackspace/requests/compute_v2/list_networks.rb +18 -0
- data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +56 -0
- data/lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb +22 -0
- data/lib/fog/rackspace/requests/compute_v2/reboot_server.rb +44 -0
- data/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb +71 -0
- data/lib/fog/rackspace/requests/compute_v2/rescue_server.rb +43 -0
- data/lib/fog/rackspace/requests/compute_v2/resize_server.rb +44 -0
- data/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb +42 -0
- data/lib/fog/rackspace/requests/compute_v2/set_metadata.rb +39 -0
- data/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb +40 -0
- data/lib/fog/rackspace/requests/compute_v2/unrescue_server.rb +40 -0
- data/lib/fog/rackspace/requests/compute_v2/update_metadata.rb +39 -0
- data/lib/fog/rackspace/requests/compute_v2/update_server.rb +44 -0
- data/lib/fog/rackspace/requests/databases/check_root_user.rb +15 -0
- data/lib/fog/rackspace/requests/databases/create_database.rb +24 -0
- data/lib/fog/rackspace/requests/databases/create_instance.rb +28 -0
- data/lib/fog/rackspace/requests/databases/create_user.rb +25 -0
- data/lib/fog/rackspace/requests/databases/delete_database.rb +15 -0
- data/lib/fog/rackspace/requests/databases/delete_instance.rb +15 -0
- data/lib/fog/rackspace/requests/databases/delete_user.rb +15 -0
- data/lib/fog/rackspace/requests/databases/enable_root_user.rb +15 -0
- data/lib/fog/rackspace/requests/databases/get_flavor.rb +15 -0
- data/lib/fog/rackspace/requests/databases/get_instance.rb +15 -0
- data/lib/fog/rackspace/requests/databases/grant_user_access.rb +32 -0
- data/lib/fog/rackspace/requests/databases/list_databases.rb +15 -0
- data/lib/fog/rackspace/requests/databases/list_flavors.rb +15 -0
- data/lib/fog/rackspace/requests/databases/list_instances.rb +15 -0
- data/lib/fog/rackspace/requests/databases/list_users.rb +15 -0
- data/lib/fog/rackspace/requests/databases/resize_instance.rb +22 -0
- data/lib/fog/rackspace/requests/databases/resize_instance_volume.rb +24 -0
- data/lib/fog/rackspace/requests/databases/restart_instance.rb +20 -0
- data/lib/fog/rackspace/requests/databases/revoke_user_access.rb +26 -0
- data/lib/fog/rackspace/requests/dns/add_records.rb +37 -0
- data/lib/fog/rackspace/requests/dns/callback.rb +18 -0
- data/lib/fog/rackspace/requests/dns/create_domains.rb +48 -0
- data/lib/fog/rackspace/requests/dns/list_domain_details.rb +31 -0
- data/lib/fog/rackspace/requests/dns/list_domains.rb +20 -0
- data/lib/fog/rackspace/requests/dns/list_record_details.rb +20 -0
- data/lib/fog/rackspace/requests/dns/list_records.rb +22 -0
- data/lib/fog/rackspace/requests/dns/list_subdomains.rb +22 -0
- data/lib/fog/rackspace/requests/dns/modify_domain.rb +35 -0
- data/lib/fog/rackspace/requests/dns/modify_record.rb +36 -0
- data/lib/fog/rackspace/requests/dns/remove_domain.rb +28 -0
- data/lib/fog/rackspace/requests/dns/remove_domains.rb +26 -0
- data/lib/fog/rackspace/requests/dns/remove_record.rb +20 -0
- data/lib/fog/rackspace/requests/dns/remove_records.rb +19 -0
- data/lib/fog/rackspace/requests/identity/create_token.rb +222 -0
- data/lib/fog/rackspace/requests/identity/create_user.rb +25 -0
- data/lib/fog/rackspace/requests/identity/delete_user.rb +15 -0
- data/lib/fog/rackspace/requests/identity/get_user_by_id.rb +15 -0
- data/lib/fog/rackspace/requests/identity/get_user_by_name.rb +15 -0
- data/lib/fog/rackspace/requests/identity/list_credentials.rb +22 -0
- data/lib/fog/rackspace/requests/identity/list_tenants.rb +45 -0
- data/lib/fog/rackspace/requests/identity/list_user_roles.rb +22 -0
- data/lib/fog/rackspace/requests/identity/list_users.rb +22 -0
- data/lib/fog/rackspace/requests/identity/update_user.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/create_access_rule.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +109 -0
- data/lib/fog/rackspace/requests/load_balancers/create_node.rb +30 -0
- data/lib/fog/rackspace/requests/load_balancers/create_virtual_ip.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_access_rule.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_all_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +23 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +16 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_virtual_ip.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_logging.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_content_caching.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_error_page.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +44 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/get_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_ssl_termination.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_stats.rb +30 -0
- data/lib/fog/rackspace/requests/load_balancers/get_usage.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/list_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_algorithms.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/list_nodes.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_protocols.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_virtual_ips.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_error_page.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_ssl_termination.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_logging.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_throttling.rb +22 -0
- data/lib/fog/rackspace/requests/load_balancers/set_content_caching.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/set_error_page.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/set_monitor.rb +31 -0
- data/lib/fog/rackspace/requests/load_balancers/set_session_persistence.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb +31 -0
- data/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb +26 -0
- data/lib/fog/rackspace/requests/load_balancers/update_node.rb +29 -0
- data/lib/fog/rackspace/requests/monitoring/create_agent_token.rb +47 -0
- data/lib/fog/rackspace/requests/monitoring/create_alarm.rb +47 -0
- data/lib/fog/rackspace/requests/monitoring/create_check.rb +47 -0
- data/lib/fog/rackspace/requests/monitoring/create_entity.rb +47 -0
- data/lib/fog/rackspace/requests/monitoring/create_notification.rb +17 -0
- data/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb +45 -0
- data/lib/fog/rackspace/requests/monitoring/delete_alarm.rb +41 -0
- data/lib/fog/rackspace/requests/monitoring/delete_check.rb +40 -0
- data/lib/fog/rackspace/requests/monitoring/delete_entity.rb +40 -0
- data/lib/fog/rackspace/requests/monitoring/delete_notification.rb +15 -0
- data/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/get_agent.rb +44 -0
- data/lib/fog/rackspace/requests/monitoring/get_agent_token.rb +47 -0
- data/lib/fog/rackspace/requests/monitoring/get_alarm.rb +51 -0
- data/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb +15 -0
- data/lib/fog/rackspace/requests/monitoring/get_check.rb +56 -0
- data/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb +61 -0
- data/lib/fog/rackspace/requests/monitoring/get_disks_info.rb +54 -0
- data/lib/fog/rackspace/requests/monitoring/get_entity.rb +55 -0
- data/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb +62 -0
- data/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb +56 -0
- data/lib/fog/rackspace/requests/monitoring/get_memory_info.rb +57 -0
- data/lib/fog/rackspace/requests/monitoring/get_monitoring_zone.rb +15 -0
- data/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb +89 -0
- data/lib/fog/rackspace/requests/monitoring/get_notification.rb +46 -0
- data/lib/fog/rackspace/requests/monitoring/get_processes_info.rb +70 -0
- data/lib/fog/rackspace/requests/monitoring/get_system_info.rb +51 -0
- data/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb +55 -0
- data/lib/fog/rackspace/requests/monitoring/list_agents.rb +61 -0
- data/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb +15 -0
- data/lib/fog/rackspace/requests/monitoring/list_alarms.rb +64 -0
- data/lib/fog/rackspace/requests/monitoring/list_check_types.rb +86 -0
- data/lib/fog/rackspace/requests/monitoring/list_checks.rb +70 -0
- data/lib/fog/rackspace/requests/monitoring/list_data_points.rb +51 -0
- data/lib/fog/rackspace/requests/monitoring/list_entities.rb +70 -0
- data/lib/fog/rackspace/requests/monitoring/list_metrics.rb +80 -0
- data/lib/fog/rackspace/requests/monitoring/list_monitoring_zones.rb +15 -0
- data/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb +70 -0
- data/lib/fog/rackspace/requests/monitoring/list_notifications.rb +63 -0
- data/lib/fog/rackspace/requests/monitoring/list_overview.rb +111 -0
- data/lib/fog/rackspace/requests/monitoring/update_alarm.rb +45 -0
- data/lib/fog/rackspace/requests/monitoring/update_check.rb +45 -0
- data/lib/fog/rackspace/requests/monitoring/update_entity.rb +45 -0
- data/lib/fog/rackspace/requests/monitoring/update_notification.rb +16 -0
- data/lib/fog/rackspace/requests/networking/create_network.rb +36 -0
- data/lib/fog/rackspace/requests/networking/create_virtual_interface.rb +30 -0
- data/lib/fog/rackspace/requests/networking/delete_network.rb +21 -0
- data/lib/fog/rackspace/requests/networking/delete_virtual_interface.rb +23 -0
- data/lib/fog/rackspace/requests/networking/get_network.rb +21 -0
- data/lib/fog/rackspace/requests/networking/list_networks.rb +18 -0
- data/lib/fog/rackspace/requests/networking/list_virtual_interfaces.rb +22 -0
- data/lib/fog/rackspace/requests/networking_v2/create_network.rb +18 -0
- data/lib/fog/rackspace/requests/networking_v2/create_port.rb +18 -0
- data/lib/fog/rackspace/requests/networking_v2/create_security_group.rb +12 -0
- data/lib/fog/rackspace/requests/networking_v2/create_security_group_rule.rb +12 -0
- data/lib/fog/rackspace/requests/networking_v2/create_subnet.rb +18 -0
- data/lib/fog/rackspace/requests/networking_v2/delete_network.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/delete_port.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/delete_security_group.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/delete_security_group_rule.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/delete_subnet.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/list_networks.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/list_ports.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/list_security_group_rules.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/list_security_groups.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/list_subnets.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/show_network.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/show_port.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/show_security_group.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/show_security_group_rule.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/show_subnet.rb +11 -0
- data/lib/fog/rackspace/requests/networking_v2/update_network.rb +18 -0
- data/lib/fog/rackspace/requests/networking_v2/update_port.rb +18 -0
- data/lib/fog/rackspace/requests/networking_v2/update_security_group.rb +12 -0
- data/lib/fog/rackspace/requests/networking_v2/update_subnet.rb +23 -0
- data/lib/fog/rackspace/requests/orchestration/abandon_stack.rb +15 -0
- data/lib/fog/rackspace/requests/orchestration/build_info.rb +15 -0
- data/lib/fog/rackspace/requests/orchestration/create_stack.rb +16 -0
- data/lib/fog/rackspace/requests/orchestration/delete_stack.rb +15 -0
- data/lib/fog/rackspace/requests/orchestration/get_stack_template.rb +20 -0
- data/lib/fog/rackspace/requests/orchestration/list_resource_events.rb +19 -0
- data/lib/fog/rackspace/requests/orchestration/list_resource_types.rb +22 -0
- data/lib/fog/rackspace/requests/orchestration/list_resources.rb +19 -0
- data/lib/fog/rackspace/requests/orchestration/list_stack_data.rb +22 -0
- data/lib/fog/rackspace/requests/orchestration/list_stack_events.rb +19 -0
- data/lib/fog/rackspace/requests/orchestration/preview_stack.rb +16 -0
- data/lib/fog/rackspace/requests/orchestration/show_event_details.rb +22 -0
- data/lib/fog/rackspace/requests/orchestration/show_resource_data.rb +22 -0
- data/lib/fog/rackspace/requests/orchestration/show_resource_metadata.rb +22 -0
- data/lib/fog/rackspace/requests/orchestration/show_resource_schema.rb +15 -0
- data/lib/fog/rackspace/requests/orchestration/show_resource_template.rb +20 -0
- data/lib/fog/rackspace/requests/orchestration/show_stack_details.rb +22 -0
- data/lib/fog/rackspace/requests/orchestration/update_stack.rb +16 -0
- data/lib/fog/rackspace/requests/orchestration/validate_template.rb +16 -0
- data/lib/fog/rackspace/requests/queues/create_claim.rb +72 -0
- data/lib/fog/rackspace/requests/queues/create_message.rb +56 -0
- data/lib/fog/rackspace/requests/queues/create_queue.rb +39 -0
- data/lib/fog/rackspace/requests/queues/delete_claim.rb +42 -0
- data/lib/fog/rackspace/requests/queues/delete_message.rb +62 -0
- data/lib/fog/rackspace/requests/queues/delete_queue.rb +33 -0
- data/lib/fog/rackspace/requests/queues/get_claim.rb +37 -0
- data/lib/fog/rackspace/requests/queues/get_message.rb +41 -0
- data/lib/fog/rackspace/requests/queues/get_queue.rb +36 -0
- data/lib/fog/rackspace/requests/queues/get_queue_stats.rb +57 -0
- data/lib/fog/rackspace/requests/queues/list_messages.rb +73 -0
- data/lib/fog/rackspace/requests/queues/list_queues.rb +62 -0
- data/lib/fog/rackspace/requests/queues/update_claim.rb +39 -0
- data/lib/fog/rackspace/requests/storage/copy_object.rb +29 -0
- data/lib/fog/rackspace/requests/storage/delete_container.rb +36 -0
- data/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb +128 -0
- data/lib/fog/rackspace/requests/storage/delete_object.rb +36 -0
- data/lib/fog/rackspace/requests/storage/delete_static_large_object.rb +78 -0
- data/lib/fog/rackspace/requests/storage/extract_archive.rb +37 -0
- data/lib/fog/rackspace/requests/storage/get_container.rb +69 -0
- data/lib/fog/rackspace/requests/storage/get_containers.rb +51 -0
- data/lib/fog/rackspace/requests/storage/get_object.rb +54 -0
- data/lib/fog/rackspace/requests/storage/get_object_http_url.rb +35 -0
- data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +71 -0
- data/lib/fog/rackspace/requests/storage/head_container.rb +41 -0
- data/lib/fog/rackspace/requests/storage/head_containers.rb +44 -0
- data/lib/fog/rackspace/requests/storage/head_object.rb +48 -0
- data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +46 -0
- data/lib/fog/rackspace/requests/storage/put_container.rb +42 -0
- data/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb +63 -0
- data/lib/fog/rackspace/requests/storage/put_object.rb +77 -0
- data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +22 -0
- data/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb +102 -0
- data/lib/fog/rackspace/service.rb +142 -0
- data/lib/fog/rackspace/storage.rb +465 -0
- data/lib/fog/rackspace/version.rb +5 -0
- data/tests/helper.rb +28 -0
- data/tests/helpers/collection_helper.rb +97 -0
- data/tests/helpers/compute/flavors_helper.rb +32 -0
- data/tests/helpers/compute/server_helper.rb +25 -0
- data/tests/helpers/compute/servers_helper.rb +10 -0
- data/tests/helpers/formats_helper.rb +98 -0
- data/tests/helpers/formats_helper_tests.rb +110 -0
- data/tests/helpers/mock_helper.rb +16 -0
- data/tests/helpers/model_helper.rb +31 -0
- data/tests/helpers/responds_to_helper.rb +11 -0
- data/tests/helpers/schema_validator_tests.rb +107 -0
- data/tests/helpers/succeeds_helper.rb +9 -0
- data/tests/lorem.txt +1 -0
- data/tests/rackspace/auto_scale_tests.rb +83 -0
- data/tests/rackspace/block_storage_tests.rb +119 -0
- data/tests/rackspace/cdn_tests.rb +186 -0
- data/tests/rackspace/compute_tests.rb +100 -0
- data/tests/rackspace/compute_v2_tests.rb +118 -0
- data/tests/rackspace/databases_tests.rb +140 -0
- data/tests/rackspace/dns_tests.rb +110 -0
- data/tests/rackspace/helper.rb +106 -0
- data/tests/rackspace/identity_tests.rb +26 -0
- data/tests/rackspace/load_balancer_tests.rb +135 -0
- data/tests/rackspace/models/auto_scale/group_builder_tests.rb +145 -0
- data/tests/rackspace/models/auto_scale/group_tests.rb +35 -0
- data/tests/rackspace/models/auto_scale/groups_tests.rb +17 -0
- data/tests/rackspace/models/auto_scale/policies_tests.rb +24 -0
- data/tests/rackspace/models/auto_scale/policy_tests.rb +35 -0
- data/tests/rackspace/models/auto_scale/webhook_tests.rb +42 -0
- data/tests/rackspace/models/auto_scale/webhooks_tests.rb +28 -0
- data/tests/rackspace/models/block_storage/snapshot_tests.rb +25 -0
- data/tests/rackspace/models/block_storage/snapshots_tests.rb +18 -0
- data/tests/rackspace/models/block_storage/volume_tests.rb +31 -0
- data/tests/rackspace/models/block_storage/volume_types_tests.rb +18 -0
- data/tests/rackspace/models/block_storage/volumes_tests.rb +9 -0
- data/tests/rackspace/models/compute_v2/flavors_tests.rb +17 -0
- data/tests/rackspace/models/compute_v2/image_tests.rb +74 -0
- data/tests/rackspace/models/compute_v2/images_tests.rb +20 -0
- data/tests/rackspace/models/compute_v2/keypairs_tests.rb +47 -0
- data/tests/rackspace/models/compute_v2/metadata_tests.rb +44 -0
- data/tests/rackspace/models/compute_v2/network_tests.rb +10 -0
- data/tests/rackspace/models/compute_v2/networks_tests.rb +10 -0
- data/tests/rackspace/models/compute_v2/server_tests.rb +274 -0
- data/tests/rackspace/models/compute_v2/servers_tests.rb +22 -0
- data/tests/rackspace/models/compute_v2/virtual_interface_tests.rb +33 -0
- data/tests/rackspace/models/compute_v2/virtual_interfaces_tests.rb +24 -0
- data/tests/rackspace/models/databases/database_tests.rb +29 -0
- data/tests/rackspace/models/databases/databases_tests.rb +17 -0
- data/tests/rackspace/models/databases/flavors_tests.rb +20 -0
- data/tests/rackspace/models/databases/instance_tests.rb +43 -0
- data/tests/rackspace/models/databases/instances_tests.rb +14 -0
- data/tests/rackspace/models/databases/user_tests.rb +21 -0
- data/tests/rackspace/models/databases/users_tests.rb +21 -0
- data/tests/rackspace/models/dns/zone_tests.rb +14 -0
- data/tests/rackspace/models/dns/zones_tests.rb +36 -0
- data/tests/rackspace/models/identity/credentials_tests.rb +25 -0
- data/tests/rackspace/models/identity/roles_tests.rb +16 -0
- data/tests/rackspace/models/identity/service_catalog_tests.rb +154 -0
- data/tests/rackspace/models/identity/tenants_tests.rb +21 -0
- data/tests/rackspace/models/identity/user_tests.rb +17 -0
- data/tests/rackspace/models/identity/users_tests.rb +17 -0
- data/tests/rackspace/models/load_balancers/access_list_tests.rb +12 -0
- data/tests/rackspace/models/load_balancers/access_lists_tests.rb +12 -0
- data/tests/rackspace/models/load_balancers/load_balancer_tests.rb +229 -0
- data/tests/rackspace/models/load_balancers/load_balancers_tests.rb +19 -0
- data/tests/rackspace/models/load_balancers/node_tests.rb +19 -0
- data/tests/rackspace/models/load_balancers/nodes_tests.rb +12 -0
- data/tests/rackspace/models/load_balancers/virtual_ip_tests.rb +16 -0
- data/tests/rackspace/models/load_balancers/virtual_ips_tests.rb +12 -0
- data/tests/rackspace/models/monitoring/agent_token_tests.rb +9 -0
- data/tests/rackspace/models/monitoring/agent_tokens_tests.rb +9 -0
- data/tests/rackspace/models/monitoring/alarm_example_tests.rb +18 -0
- data/tests/rackspace/models/monitoring/alarm_examples_tests.rb +19 -0
- data/tests/rackspace/models/monitoring/alarm_tests.rb +59 -0
- data/tests/rackspace/models/monitoring/alarms_tests.rb +25 -0
- data/tests/rackspace/models/monitoring/check_tests.rb +49 -0
- data/tests/rackspace/models/monitoring/check_types_tests.rb +14 -0
- data/tests/rackspace/models/monitoring/checks_tests.rb +16 -0
- data/tests/rackspace/models/monitoring/data_points_tests.rb +19 -0
- data/tests/rackspace/models/monitoring/entities_tests.rb +14 -0
- data/tests/rackspace/models/monitoring/entity_tests.rb +26 -0
- data/tests/rackspace/models/monitoring/metric_tests.rb +19 -0
- data/tests/rackspace/models/monitoring/metrics_tests.rb +17 -0
- data/tests/rackspace/models/monitoring/notification_tests.rb +19 -0
- data/tests/rackspace/models/monitoring/notifications_tests.rb +10 -0
- data/tests/rackspace/models/networking/network_tests.rb +10 -0
- data/tests/rackspace/models/networking/networks_tests.rb +10 -0
- data/tests/rackspace/models/networking/virtual_interface_tests.rb +33 -0
- data/tests/rackspace/models/networking/virtual_interfaces_tests.rb +24 -0
- data/tests/rackspace/models/queues/claim_tests.rb +41 -0
- data/tests/rackspace/models/queues/claims_tests.rb +53 -0
- data/tests/rackspace/models/queues/message_tests.rb +49 -0
- data/tests/rackspace/models/queues/messages_tests.rb +16 -0
- data/tests/rackspace/models/queues/queue_tests.rb +37 -0
- data/tests/rackspace/models/queues/queues_tests.rb +8 -0
- data/tests/rackspace/models/storage/account_tests.rb +26 -0
- data/tests/rackspace/models/storage/directories_tests.rb +26 -0
- data/tests/rackspace/models/storage/directory_tests.rb +138 -0
- data/tests/rackspace/models/storage/file_tests.rb +400 -0
- data/tests/rackspace/models/storage/files_tests.rb +39 -0
- data/tests/rackspace/models/storage/metadata_tests.rb +208 -0
- data/tests/rackspace/monitoring_tests.rb +76 -0
- data/tests/rackspace/networking_tests.rb +118 -0
- data/tests/rackspace/queues_tests.rb +105 -0
- data/tests/rackspace/rackspace_tests.rb +56 -0
- data/tests/rackspace/requests/auto_scale/config_tests.rb +97 -0
- data/tests/rackspace/requests/auto_scale/group_tests.rb +50 -0
- data/tests/rackspace/requests/auto_scale/helper.rb +224 -0
- data/tests/rackspace/requests/auto_scale/policy_tests.rb +71 -0
- data/tests/rackspace/requests/auto_scale/webhook_tests.rb +58 -0
- data/tests/rackspace/requests/block_storage/snapshot_tests.rb +80 -0
- data/tests/rackspace/requests/block_storage/volume_tests.rb +75 -0
- data/tests/rackspace/requests/block_storage/volume_type_tests.rb +21 -0
- data/tests/rackspace/requests/cdn/cdn_tests.rb +75 -0
- data/tests/rackspace/requests/compute/address_tests.rb +42 -0
- data/tests/rackspace/requests/compute/flavor_tests.rb +39 -0
- data/tests/rackspace/requests/compute/helper.rb +10 -0
- data/tests/rackspace/requests/compute/image_tests.rb +70 -0
- data/tests/rackspace/requests/compute/resize_tests.rb +35 -0
- data/tests/rackspace/requests/compute/server_tests.rb +94 -0
- data/tests/rackspace/requests/compute_v2/address_tests.rb +45 -0
- data/tests/rackspace/requests/compute_v2/attachment_tests.rb +66 -0
- data/tests/rackspace/requests/compute_v2/flavor_tests.rb +47 -0
- data/tests/rackspace/requests/compute_v2/image_tests.rb +77 -0
- data/tests/rackspace/requests/compute_v2/keypair_tests.rb +55 -0
- data/tests/rackspace/requests/compute_v2/metadata_tests.rb +104 -0
- data/tests/rackspace/requests/compute_v2/network_tests.rb +49 -0
- data/tests/rackspace/requests/compute_v2/server_tests.rb +172 -0
- data/tests/rackspace/requests/compute_v2/virtual_interface_tests.rb +49 -0
- data/tests/rackspace/requests/databases/database_tests.rb +39 -0
- data/tests/rackspace/requests/databases/flavor_tests.rb +16 -0
- data/tests/rackspace/requests/databases/helper.rb +79 -0
- data/tests/rackspace/requests/databases/instance_tests.rb +77 -0
- data/tests/rackspace/requests/databases/user_tests.rb +37 -0
- data/tests/rackspace/requests/dns/dns_tests.rb +125 -0
- data/tests/rackspace/requests/dns/helper.rb +124 -0
- data/tests/rackspace/requests/dns/records_tests.rb +83 -0
- data/tests/rackspace/requests/identity/tenants_tests.rb +21 -0
- data/tests/rackspace/requests/identity/token_tests.rb +70 -0
- data/tests/rackspace/requests/identity/user_tests.rb +106 -0
- data/tests/rackspace/requests/load_balancers/access_list_tests.rb +56 -0
- data/tests/rackspace/requests/load_balancers/algorithm_tests.rb +19 -0
- data/tests/rackspace/requests/load_balancers/connection_logging_tests.rb +25 -0
- data/tests/rackspace/requests/load_balancers/connection_throttling_tests.rb +37 -0
- data/tests/rackspace/requests/load_balancers/content_caching_tests.rb +25 -0
- data/tests/rackspace/requests/load_balancers/error_page_tests.rb +31 -0
- data/tests/rackspace/requests/load_balancers/get_stats_tests.rb +13 -0
- data/tests/rackspace/requests/load_balancers/helper.rb +229 -0
- data/tests/rackspace/requests/load_balancers/load_balancer_tests.rb +86 -0
- data/tests/rackspace/requests/load_balancers/load_balancer_usage_tests.rb +19 -0
- data/tests/rackspace/requests/load_balancers/monitor_tests.rb +46 -0
- data/tests/rackspace/requests/load_balancers/node_tests.rb +93 -0
- data/tests/rackspace/requests/load_balancers/protocol_tests.rb +21 -0
- data/tests/rackspace/requests/load_balancers/session_persistence_tests.rb +33 -0
- data/tests/rackspace/requests/load_balancers/ssl_termination_tests.rb +38 -0
- data/tests/rackspace/requests/load_balancers/usage_tests.rb +19 -0
- data/tests/rackspace/requests/load_balancers/virtual_ip_tests.rb +40 -0
- data/tests/rackspace/requests/monitoring/agent_tests.rb +74 -0
- data/tests/rackspace/requests/monitoring/alarm_example_tests.rb +30 -0
- data/tests/rackspace/requests/monitoring/alarm_tests.rb +55 -0
- data/tests/rackspace/requests/monitoring/check_tests.rb +39 -0
- data/tests/rackspace/requests/monitoring/entity_tests.rb +36 -0
- data/tests/rackspace/requests/monitoring/helper.rb +139 -0
- data/tests/rackspace/requests/monitoring/list_tests.rb +83 -0
- data/tests/rackspace/requests/monitoring/notification_tests.rb +46 -0
- data/tests/rackspace/requests/networking/network_tests.rb +49 -0
- data/tests/rackspace/requests/networking/virtual_interface_tests.rb +49 -0
- data/tests/rackspace/requests/queues/claim_tests.rb +60 -0
- data/tests/rackspace/requests/queues/helper.rb +50 -0
- data/tests/rackspace/requests/queues/messages_tests.rb +54 -0
- data/tests/rackspace/requests/queues/queues_tests.rb +38 -0
- data/tests/rackspace/requests/storage/account_tests.rb +15 -0
- data/tests/rackspace/requests/storage/container_tests.rb +67 -0
- data/tests/rackspace/requests/storage/large_object_tests.rb +355 -0
- data/tests/rackspace/requests/storage/object_tests.rb +230 -0
- data/tests/rackspace/service_tests.rb +82 -0
- data/tests/rackspace/storage_tests.rb +128 -0
- data/tests/rackspace/url_encoding_tests.rb +5 -0
- metadata +880 -0
@@ -0,0 +1,723 @@
|
|
1
|
+
#Next Generation Cloud Servers™ (compute_v2)
|
2
|
+
|
3
|
+
This document explains how to get started using Next Generation Cloud Servers with Fog. It assumes you have read the [Getting Started with Fog and the Rackspace Open Cloud](getting_started.md) document.
|
4
|
+
|
5
|
+
**Note**: Fog also provides an interface to First Gen Cloud Servers™ (compute). The compute interface is deprecated and should only be used if you need to interact with our first generation cloud. Fog determines the appropriate interface based on the `:version` parameter. See [Create Service](#create-service) section for more information.
|
6
|
+
|
7
|
+
## Starting irb console
|
8
|
+
|
9
|
+
Start by executing the following command:
|
10
|
+
|
11
|
+
irb
|
12
|
+
|
13
|
+
Once `irb` has launched you need to require the Fog library.
|
14
|
+
|
15
|
+
If using Ruby 1.8.x execute:
|
16
|
+
|
17
|
+
require 'rubygems'
|
18
|
+
require 'fog'
|
19
|
+
|
20
|
+
If using Ruby 1.9.x execute:
|
21
|
+
|
22
|
+
require 'fog'
|
23
|
+
|
24
|
+
## Create Service
|
25
|
+
|
26
|
+
Next, create a connection to the Next Gen Cloud Servers:
|
27
|
+
|
28
|
+
Using a US-based account:
|
29
|
+
|
30
|
+
service = Fog::Compute.new({
|
31
|
+
:provider => 'Rackspace', # Rackspace Fog provider
|
32
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
33
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
34
|
+
:version => :v2, # Use Next Gen Cloud Servers
|
35
|
+
:rackspace_region => :ord, # Defaults to :dfw
|
36
|
+
:connection_options => {} # Optional
|
37
|
+
})
|
38
|
+
|
39
|
+
Using a UK-based account:
|
40
|
+
|
41
|
+
service = Fog::Compute.new({
|
42
|
+
:provider => 'Rackspace', # Rackspace Fog provider
|
43
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
44
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
45
|
+
:version => :v2, # Use Next Gen Cloud Servers
|
46
|
+
:rackspace_auth_url => Fog::Rackspace::UK_AUTH_ENDPOINT,
|
47
|
+
:rackspace_region => :lon,
|
48
|
+
:connection_options => {} # Optional
|
49
|
+
})
|
50
|
+
|
51
|
+
To learn more about obtaining cloud credentials refer to the [Getting Started with Fog and the Rackspace Open Cloud](getting_started.md) document.
|
52
|
+
|
53
|
+
By default `Fog::Compute` will authenticate against the US authentication endpoint and connect to the DFW region. You can specify alternative authentication endpoints using the key `:rackspace_auth_url`. Please refer to [Alternate Authentication Endpoints](http://docs.rackspace.com/auth/api/v2.0/auth-client-devguide/content/Endpoints-d1e180.html) for a list of alternative Rackspace authentication endpoints.
|
54
|
+
|
55
|
+
Alternative regions are specified using the key `:rackspace_region `. A list of regions available for Cloud Servers can be found by executing the following:
|
56
|
+
|
57
|
+
identity_service = Fog::Identity({
|
58
|
+
:provider => 'Rackspace', # Rackspace Fog provider
|
59
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
60
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
61
|
+
:rackspace_auth_url => Fog::Rackspace::UK_AUTH_ENDPOINT # Not specified for US Cloud
|
62
|
+
})
|
63
|
+
|
64
|
+
identity_service.service_catalog.display_service_regions :cloudServersOpenStack
|
65
|
+
|
66
|
+
Rackspace Private Cloud installations can skip specifying a region and directly specify their custom service endpoints using the key `:rackspace_compute_url`.
|
67
|
+
|
68
|
+
**Note**: A`Fog::Compute` instance is needed for the desired region.
|
69
|
+
|
70
|
+
### Optional Connection Parameters
|
71
|
+
|
72
|
+
Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
|
73
|
+
|
74
|
+
<table>
|
75
|
+
<tr>
|
76
|
+
<th>Key</th>
|
77
|
+
<th>Description</th>
|
78
|
+
</tr>
|
79
|
+
<tr>
|
80
|
+
<td>:connect_timeout</td>
|
81
|
+
<td>Connection timeout (default: 60 seconds)</td>
|
82
|
+
</tr>
|
83
|
+
<tr>
|
84
|
+
<td>:read_timeout</td>
|
85
|
+
<td>Read timeout for connection (default: 60 seconds)</td> </tr>
|
86
|
+
<tr>
|
87
|
+
<td>:write_timeout</td>
|
88
|
+
<td>Write timeout for connection (default: 60 seconds)</td>
|
89
|
+
</tr>
|
90
|
+
<tr>
|
91
|
+
<td>:proxy</td>
|
92
|
+
<td>Proxy for HTTP and HTTPS connections</td>
|
93
|
+
</tr>
|
94
|
+
<tr>
|
95
|
+
<td>:ssl_ca_path</td>
|
96
|
+
<td>Path to SSL certificate authorities</td>
|
97
|
+
</tr>
|
98
|
+
<tr>
|
99
|
+
<td>:ssl_ca_file</td>
|
100
|
+
<td>SSL certificate authority file</td>
|
101
|
+
</tr>
|
102
|
+
<tr>
|
103
|
+
<td>:ssl_verify_peer</td>
|
104
|
+
<td>SSL verify peer (default: true)</td>
|
105
|
+
</tr>
|
106
|
+
</table>
|
107
|
+
|
108
|
+
|
109
|
+
## Fog Abstractions
|
110
|
+
|
111
|
+
Fog provides both a **model** and **request** abstraction. The request abstraction provides the most efficient interface and the model abstraction wraps the request abstraction to provide a convenient `ActiveModel` like interface.
|
112
|
+
|
113
|
+
### Request Layer
|
114
|
+
|
115
|
+
The request abstraction maps directly to the [Next Gen Cloud Servers API](http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_preface.html). It provides the most efficient interface to the Rackspace Open Cloud.
|
116
|
+
|
117
|
+
To see a list of requests supported by the service:
|
118
|
+
|
119
|
+
service.requests
|
120
|
+
|
121
|
+
This returns:
|
122
|
+
|
123
|
+
:list_servers, :get_server, :create_server, :update_server, :delete_server, :change_server_password, :reboot_server, :rebuild_server, :resize_server, :confirm_resize_server, :revert_resize_server, :list_images, :get_image, :list_flavors, :get_flavor, :attach_volume, :get_attachment, :list_attachments, :delete_attachment, :get_vnc_console
|
124
|
+
|
125
|
+
|
126
|
+
#### Example Request
|
127
|
+
|
128
|
+
To request a list of flavors:
|
129
|
+
|
130
|
+
response = service.list_flavors
|
131
|
+
|
132
|
+
This returns in the following `Excon::Response`:
|
133
|
+
|
134
|
+
<Excon::Response:0x007fe4b2ea2f38 @body={"flavors"=>[{"id"=>"2", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/2", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/2", "rel"=>"bookmark"}], "name"=>"512MB Standard Instance"}, {"id"=>"3", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/3", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/3", "rel"=>"bookmark"}], "name"=>"1GB Standard Instance"}, {"id"=>"4", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/4", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/4", "rel"=>"bookmark"}], "name"=>"2GB Standard Instance"}, {"id"=>"5", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/5", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/5", "rel"=>"bookmark"}], "name"=>"4GB Standard Instance"}, {"id"=>"6", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/6", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/6", "rel"=>"bookmark"}], "name"=>"8GB Standard Instance"}, {"id"=>"7", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/7", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/7", "rel"=>"bookmark"}], "name"=>"15GB Standard Instance"}, {"id"=>"8", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/8", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/8", "rel"=>"bookmark"}], "name"=>"30GB Standard Instance"}]}, @headers={"Date"=>"Mon, 21 Jan 2013 16:14:45 GMT", "Content-Length"=>"1697", "Content-Type"=>"application/json", "X-Compute-Request-Id"=>"req-0a1e8532-19b3-4993-8b48-cf2d9efe078c", "Server"=>"Jetty(8.0.y.z-SNAPSHOT)"}, @status=200>
|
135
|
+
|
136
|
+
To view the status of the response:
|
137
|
+
|
138
|
+
response.status
|
139
|
+
|
140
|
+
**Note**: Fog is aware of valid HTTP response statuses for each request type. If an unexpected HTTP response status occurs, Fog will raise an exception.
|
141
|
+
|
142
|
+
To view response body:
|
143
|
+
|
144
|
+
response.body
|
145
|
+
|
146
|
+
This will return:
|
147
|
+
|
148
|
+
{"flavors"=>[{"id"=>"2", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/2", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/2", "rel"=>"bookmark"}], "name"=>"512MB Standard Instance"}, {"id"=>"3", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/3", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/3", "rel"=>"bookmark"}], "name"=>"1GB Standard Instance"}, {"id"=>"4", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/4", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/4", "rel"=>"bookmark"}], "name"=>"2GB Standard Instance"}, {"id"=>"5", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/5", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/5", "rel"=>"bookmark"}], "name"=>"4GB Standard Instance"}, {"id"=>"6", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/6", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/6", "rel"=>"bookmark"}], "name"=>"8GB Standard Instance"}, {"id"=>"7", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/7", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/7", "rel"=>"bookmark"}], "name"=>"15GB Standard Instance"}, {"id"=>"8", "links"=>[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/flavors/8", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/flavors/8", "rel"=>"bookmark"}], "name"=>"30GB Standard Instance"}]}
|
149
|
+
|
150
|
+
|
151
|
+
To learn more about Compute request methods refer to [rdoc](http://rubydoc.info/gems/fog/Fog/Compute/Rackspace/Real). To learn more about Excon refer to [Excon GitHub repo](https://github.com/geemus/excon).
|
152
|
+
|
153
|
+
### Model Layer
|
154
|
+
|
155
|
+
Fog models behave in a manner similar to `ActiveModel`. Models will generally respond to `create`, `save`, `persisted?`, `destroy`, `reload` and `attributes` methods. Additionally, fog will automatically create attribute accessors.
|
156
|
+
|
157
|
+
Here is a summary of common model methods:
|
158
|
+
|
159
|
+
<table>
|
160
|
+
<tr>
|
161
|
+
<th>Method</th>
|
162
|
+
<th>Description</th>
|
163
|
+
</tr>
|
164
|
+
<tr>
|
165
|
+
<td>create</td>
|
166
|
+
<td>
|
167
|
+
Accepts hash of attributes and creates object.<br>
|
168
|
+
Note: creation is a non-blocking call and you will be required to wait for a valid state before using resulting object.
|
169
|
+
</td>
|
170
|
+
</tr>
|
171
|
+
<tr>
|
172
|
+
<td>save</td>
|
173
|
+
<td>Saves object.<br>
|
174
|
+
Note: not all objects support updating object.</td>
|
175
|
+
</tr>
|
176
|
+
<tr>
|
177
|
+
<td>persisted?</td>
|
178
|
+
<td>Returns true if the object has been persisted.</td>
|
179
|
+
</tr>
|
180
|
+
<tr>
|
181
|
+
<td>destroy</td>
|
182
|
+
<td>
|
183
|
+
Destroys object.<br>
|
184
|
+
Note: this is a non-blocking call and object deletion might not be instantaneous.
|
185
|
+
</td>
|
186
|
+
<tr>
|
187
|
+
<td>reload</td>
|
188
|
+
<td>Updates object with latest state from service.</td>
|
189
|
+
<tr>
|
190
|
+
<td>ready?</td>
|
191
|
+
<td>Returns true if object is in a ready state and able to perform actions. This method will raise an exception if object is in an error state.</td>
|
192
|
+
</tr>
|
193
|
+
<tr>
|
194
|
+
<td>attributes</td>
|
195
|
+
<td>Returns a hash containing the list of model attributes and values.</td>
|
196
|
+
</tr>
|
197
|
+
<td>identity</td>
|
198
|
+
<td>
|
199
|
+
Returns the identity of the object.<br>
|
200
|
+
Note: This might not always be equal to object.id.
|
201
|
+
</td>
|
202
|
+
</tr>
|
203
|
+
<tr>
|
204
|
+
<td>wait_for</td>
|
205
|
+
<td>This method periodically reloads model and then yields to specified block until block returns true or a timeout occurs.</td>
|
206
|
+
</tr>
|
207
|
+
</table>
|
208
|
+
|
209
|
+
The remainder of this document details the model abstraction.
|
210
|
+
|
211
|
+
## List Images
|
212
|
+
|
213
|
+
To retrieve a list of available images:
|
214
|
+
|
215
|
+
service.images
|
216
|
+
|
217
|
+
This returns a collection of `Fog::Compute::RackspaceV2::Image` models:
|
218
|
+
|
219
|
+
<Fog::Compute::RackspaceV2::Images
|
220
|
+
[
|
221
|
+
<Fog::Compute::RackspaceV2::Image
|
222
|
+
id="8a3a9f96-b997-46fd-b7a8-a9e740796ffd",
|
223
|
+
name="Ubuntu 12.10 (Quantal Quetzal)",
|
224
|
+
created=nil,
|
225
|
+
updated=nil,
|
226
|
+
state=nil,
|
227
|
+
user_id=nil,
|
228
|
+
tenant_id=nil,
|
229
|
+
progress=nil,
|
230
|
+
minDisk=nil,
|
231
|
+
minRam=nil,
|
232
|
+
metadata=nil,
|
233
|
+
disk_config=nil,
|
234
|
+
links=[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "rel"=>"bookmark"}, {"href"=>"https://ord.images.api.rackspacecloud.com/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "type"=>"application/vnd.openstack.image", "rel"=>"alternate"}]
|
235
|
+
>,
|
236
|
+
<Fog::Compute::RackspaceV2::Image
|
237
|
+
id="992ba82c-083b-4eed-9c26-c54473686466",
|
238
|
+
name="Windows Server 2012 + SharePoint Foundation 2013 with SQL Server 2012 Standard",
|
239
|
+
created=nil,
|
240
|
+
updated=nil,
|
241
|
+
state=nil,
|
242
|
+
user_id=nil,
|
243
|
+
tenant_id=nil,
|
244
|
+
progress=nil,
|
245
|
+
minDisk=nil,
|
246
|
+
minRam=nil,
|
247
|
+
metadata=nil,
|
248
|
+
disk_config=nil,
|
249
|
+
links=[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/images/992ba82c-083b-4eed-9c26-c54473686466", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/images/992ba82c-083b-4eed-9c26-c54473686466", "rel"=>"bookmark"}, {"href"=>"https://ord.images.api.rackspacecloud.com/772045/images/992ba82c-083b-4eed-9c26-c54473686466", "type"=>"application/vnd.openstack.image", "rel"=>"alternate"}]
|
250
|
+
>,
|
251
|
+
…
|
252
|
+
|
253
|
+
## Get Image
|
254
|
+
|
255
|
+
To retrieve individual image:
|
256
|
+
|
257
|
+
service.images.get "8a3a9f96-b997-46fd-b7a8-a9e740796ffd"
|
258
|
+
|
259
|
+
This returns an `Fog::Compute::RackspaceV2::Image` instance:
|
260
|
+
|
261
|
+
<Fog::Compute::RackspaceV2::Image
|
262
|
+
id="8a3a9f96-b997-46fd-b7a8-a9e740796ffd",
|
263
|
+
name="Ubuntu 12.10 (Quantal Quetzal)",
|
264
|
+
created="2012-11-27T15:27:08Z",
|
265
|
+
updated="2012-11-28T14:35:21Z",
|
266
|
+
state="ACTIVE",
|
267
|
+
user_id=nil,
|
268
|
+
tenant_id=nil,
|
269
|
+
progress=100,
|
270
|
+
minDisk=10,
|
271
|
+
minRam=512,
|
272
|
+
metadata={"os_distro"=>"ubuntu", "com.rackspace__1__visible_core"=>"1", "com.rackspace__1__build_rackconnect"=>"1", "auto_disk_config"=>"True", "com.rackspace__1__options"=>"0", "image_type"=>"base", "org.openstack__1__os_version"=>"12.10", "os_version"=>"12.10", "rax_options"=>"0", "com.rackspace__1__visible_rackconnect"=>"1", "org.openstack__1__os_distro"=>"org.ubuntu", "com.rackspace__1__visible_managed"=>"1", "com.rackspace__1__build_core"=>"1", "arch"=>"x86-64", "os_type"=>"linux", "org.openstack__1__architecture"=>"x64", "com.rackspace__1__build_managed"=>"1"},
|
273
|
+
disk_config="AUTO",
|
274
|
+
links=[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "rel"=>"bookmark"}, {"href"=>"https://ord.images.api.rackspacecloud.com/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "type"=>"application/vnd.openstack.image", "rel"=>"alternate"}]
|
275
|
+
>
|
276
|
+
|
277
|
+
## List Flavors
|
278
|
+
|
279
|
+
To retrieve a list of available flavors:
|
280
|
+
|
281
|
+
service.flavors
|
282
|
+
|
283
|
+
This returns a collection of `Fog::Compute::RackspaceV2::Flavor` models:
|
284
|
+
|
285
|
+
<Fog::Compute::RackspaceV2::Flavors
|
286
|
+
[
|
287
|
+
<Fog::Compute::RackspaceV2::Flavor
|
288
|
+
id="2",
|
289
|
+
name="512MB Standard Instance",
|
290
|
+
ram=nil,
|
291
|
+
disk=nil,
|
292
|
+
vcpus=nil,
|
293
|
+
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/flavors/2", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/flavors/2", "rel"=>"bookmark"}]
|
294
|
+
>,
|
295
|
+
<Fog::Compute::RackspaceV2::Flavor
|
296
|
+
id="3",
|
297
|
+
name="1GB Standard Instance",
|
298
|
+
ram=nil,
|
299
|
+
disk=nil,
|
300
|
+
vcpus=nil,
|
301
|
+
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/flavors/3", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/flavors/3", "rel"=>"bookmark"}]
|
302
|
+
>,
|
303
|
+
…
|
304
|
+
|
305
|
+
|
306
|
+
## Get Flavor
|
307
|
+
|
308
|
+
To retrieve individual flavor:
|
309
|
+
|
310
|
+
service.flavor.get 2
|
311
|
+
|
312
|
+
This returns a `Fog::Compute::RackspaceV2::Flavor` instance:
|
313
|
+
|
314
|
+
<Fog::Compute::RackspaceV2::Flavor
|
315
|
+
id="2",
|
316
|
+
name="512MB Standard Instance",
|
317
|
+
ram=512,
|
318
|
+
disk=20,
|
319
|
+
vcpus=1,
|
320
|
+
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/flavors/2", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/flavors/2", "rel"=>"bookmark"}]
|
321
|
+
>
|
322
|
+
|
323
|
+
|
324
|
+
## List Servers
|
325
|
+
|
326
|
+
To retrieve a list of available servers:
|
327
|
+
|
328
|
+
service.servers
|
329
|
+
|
330
|
+
This returns a collection of `Fog::Compute::RackspaceV2::Servers` models:
|
331
|
+
|
332
|
+
<Fog::Compute::RackspaceV2::Servers
|
333
|
+
[
|
334
|
+
<Fog::Compute::RackspaceV2::Server
|
335
|
+
id="6a273531-8ee4-4bef-ad1a-baca963f8bbb",
|
336
|
+
name="rax-example",
|
337
|
+
created="2013-01-17T22:28:14Z",
|
338
|
+
updated="2013-01-17T22:31:19Z",
|
339
|
+
host_id="7361c18d94a9933039dae57ae07b0a39fdb39ea3775a25329086531f",
|
340
|
+
state="ACTIVE",
|
341
|
+
progress=100,
|
342
|
+
user_id="296063",
|
343
|
+
tenant_id="772045",
|
344
|
+
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/servers/6a273531-8ee4-4bef-ad1a-baca963f8bbb", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/servers/6a273531-8ee4-4bef-ad1a-baca963f8bbb", "rel"=>"bookmark"}],
|
345
|
+
metadata={},
|
346
|
+
personality=nil,
|
347
|
+
ipv4_address="198.101.255.186",
|
348
|
+
ipv6_address="2001:4800:780e:0510:0fe1:75e8:ff04:c4a0",
|
349
|
+
disk_config="AUTO",
|
350
|
+
bandwidth=[],
|
351
|
+
addresses={"public"=>[{"version"=>4, "addr"=>"198.101.255.186"}, {"version"=>6, "addr"=>"2001:4800:780e:0510:0fe1:75e8:ff04:c4a0"}], "private"=>[{"version"=>4, "addr"=>"10.180.22.165"}]},
|
352
|
+
flavor_id="2",
|
353
|
+
image_id="33e21646-43ed-407e-9dbf-7c7873fccd9a"
|
354
|
+
>,
|
355
|
+
…
|
356
|
+
|
357
|
+
## Get Server
|
358
|
+
|
359
|
+
To return an individual server:
|
360
|
+
|
361
|
+
service.servers.get "6a273531-8ee4-4bef-ad1a-baca963f8bbb"
|
362
|
+
|
363
|
+
This returns a `Fog::Compute::RackspaceV2::Server` instance:
|
364
|
+
|
365
|
+
<Fog::Compute::RackspaceV2::Servers
|
366
|
+
[
|
367
|
+
<Fog::Compute::RackspaceV2::Server
|
368
|
+
id="6a273531-8ee4-4bef-ad1a-baca963f8bbb",
|
369
|
+
name="rax-example",
|
370
|
+
created="2013-01-17T22:28:14Z",
|
371
|
+
updated="2013-01-17T22:31:19Z",
|
372
|
+
host_id="7361c18d94a9933039dae57ae07b0a39fdb39ea3775a25329086531f",
|
373
|
+
state="ACTIVE",
|
374
|
+
progress=100,
|
375
|
+
user_id="296063",
|
376
|
+
tenant_id="772045",
|
377
|
+
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/servers/6a273531-8ee4-4bef-ad1a-baca963f8bbb", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/servers/6a273531-8ee4-4bef-ad1a-baca963f8bbb", "rel"=>"bookmark"}],
|
378
|
+
metadata={},
|
379
|
+
personality=nil,
|
380
|
+
ipv4_address="198.101.255.186",
|
381
|
+
ipv6_address="2001:4800:780e:0510:0fe1:75e8:ff04:c4a0",
|
382
|
+
disk_config="AUTO",
|
383
|
+
bandwidth=[],
|
384
|
+
addresses={"public"=>[{"version"=>4, "addr"=>"198.101.255.186"}, {"version"=>6, "addr"=>"2001:4800:780e:0510:0fe1:75e8:ff04:c4a0"}], "private"=>[{"version"=>4, "addr"=>"10.180.22.165"}]},
|
385
|
+
flavor_id="2",
|
386
|
+
image_id="33e21646-43ed-407e-9dbf-7c7873fccd9a"
|
387
|
+
>,
|
388
|
+
...
|
389
|
+
|
390
|
+
## Create Server
|
391
|
+
|
392
|
+
If you are interested in creating a server utilizing ssh key authenication, you are recommended to use [bootstrap](#bootstrap) method.
|
393
|
+
|
394
|
+
To create a server:
|
395
|
+
|
396
|
+
flavor = service.flavors.first
|
397
|
+
image = service.images.first
|
398
|
+
server = service.servers.create(:name => 'fog-doc', :flavor_id => flavor.id, :image_id => image.id)
|
399
|
+
|
400
|
+
**Note**: The `:name`, `:flavor_id`, and `image_id` attributes are required for server creation.
|
401
|
+
|
402
|
+
This will return a `Fog::Compute::RackspaceV2::Server` instance:
|
403
|
+
|
404
|
+
<Fog::Compute::RackspaceV2::Server
|
405
|
+
id="8ff308a6-e04a-4602-b991-ed526ab3b6be",
|
406
|
+
name="fog-server",
|
407
|
+
created=nil,
|
408
|
+
updated=nil,
|
409
|
+
host_id=nil,
|
410
|
+
state=nil,
|
411
|
+
progress=nil,
|
412
|
+
user_id=nil,
|
413
|
+
tenant_id=nil,
|
414
|
+
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/servers/8ff308a6-e04a-4602-b991-ed526ab3b6be", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/servers/8ff308a6-e04a-4602-b991-ed526ab3b6be", "rel"=>"bookmark"}],
|
415
|
+
metadata=nil,
|
416
|
+
personality=nil,
|
417
|
+
ipv4_address=nil,
|
418
|
+
ipv6_address=nil,
|
419
|
+
disk_config="AUTO",
|
420
|
+
bandwidth=nil,
|
421
|
+
addresses=nil,
|
422
|
+
flavor_id=2,
|
423
|
+
image_id="3afe97b2-26dc-49c5-a2cc-a2fc8d80c001"
|
424
|
+
>
|
425
|
+
|
426
|
+
Notice that your server contains several `nil` attributes. To see the latest status, reload the instance as follows:
|
427
|
+
|
428
|
+
server.reload
|
429
|
+
|
430
|
+
You can see that the server is currently 17% built:
|
431
|
+
|
432
|
+
Fog::Compute::RackspaceV2::Server
|
433
|
+
id="8ff308a6-e04a-4602-b991-ed526ab3b6be",
|
434
|
+
name="fog-server",
|
435
|
+
created="2013-01-18T16:15:41Z",
|
436
|
+
updated="2013-01-18T16:16:14Z",
|
437
|
+
host_id="775837108e45aa3f2a58527c9c3b6160838078e83148f07906c933ca",
|
438
|
+
state="BUILD",
|
439
|
+
progress=17,
|
440
|
+
user_id="296063",
|
441
|
+
tenant_id="772045",
|
442
|
+
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/servers/8ff308a6-e04a-4602-b991-ed526ab3b6be", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/servers/8ff308a6-e04a-4602-b991-ed526ab3b6be", "rel"=>"bookmark"}],
|
443
|
+
metadata={},
|
444
|
+
personality=nil,
|
445
|
+
ipv4_address="",
|
446
|
+
ipv6_address="",
|
447
|
+
disk_config="AUTO",
|
448
|
+
bandwidth=[],
|
449
|
+
addresses={"public"=>[{"version"=>4, "addr"=>"198.61.209.78"}, {"version"=>6, "addr"=>"2001:4800:7810:0512:0fe1:75e8:ff04:94e4"}], "private"=>[{"version"=>4, "addr"=>"10.181.13.198"}]},
|
450
|
+
flavor_id="2",
|
451
|
+
image_id="3afe97b2-26dc-49c5-a2cc-a2fc8d80c001"
|
452
|
+
>
|
453
|
+
|
454
|
+
You will be unable to perform any actions to this server until it reaches an `ACTIVE` state. Since this is true for most server actions, Fog provides the convenience method `wait_for`.
|
455
|
+
|
456
|
+
Fog can wait for the server to become ready as follows:
|
457
|
+
|
458
|
+
server.wait_for { ready? }
|
459
|
+
|
460
|
+
**Note**: The `Fog::Compute::RackspaceV2::Server` instance returned from the create method contains a `password` attribute. The `password` attribute will NOT be present in subsequent retrievals either through `service.servers` or `server.servers.get my_server_id`.
|
461
|
+
|
462
|
+
### Additional Parameters
|
463
|
+
|
464
|
+
The `create` method also supports the following key values:
|
465
|
+
|
466
|
+
<table>
|
467
|
+
<tr>
|
468
|
+
<th>Key</th>
|
469
|
+
<th>Description</th>
|
470
|
+
</tr>
|
471
|
+
<tr>
|
472
|
+
<td>:disk_config</td>
|
473
|
+
<td>The disk configuration value (AUTO or MANUAL). Refer to Next Gen Server API documentation - <a href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#diskconfig_attribute">Disk Configuration Extension</a>.</td>
|
474
|
+
</tr>
|
475
|
+
<tr>
|
476
|
+
<td>:metadata</td>
|
477
|
+
<td>Hash containing server metadata.</td>
|
478
|
+
</tr>
|
479
|
+
<tr>
|
480
|
+
<td>:personality</td>
|
481
|
+
<td>Array of files to be injected onto the server. Please refer to the Fog <a href="http://rubydoc.info/github/fog/fog/Fog/Compute/RackspaceV2/Server:personality">personality </a> API documentation for further information.</td>
|
482
|
+
</tr>
|
483
|
+
<tr>
|
484
|
+
<td>:config_drive</td>
|
485
|
+
<td>Whether a read-only configuration drive is attached. Refer to Next Gen Server API documentation - <a
|
486
|
+
href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/config_drive_ext.html">Config Drive Extension</a>.</td>
|
487
|
+
</tr>
|
488
|
+
<tr>
|
489
|
+
<td>:networks</td>
|
490
|
+
<td>Array of uuids corresponding to cloud networks that should be attached to the server, and defaults to two elements (all-zeros for public internet and all-ones for ServiceNet). Please refer to the Rackspace <a href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/CreateServers.html">Create Server </a> API documentation for further information.</td>
|
491
|
+
</tr>
|
492
|
+
</table>
|
493
|
+
|
494
|
+
## Bootstrap
|
495
|
+
|
496
|
+
In addition to the `create` method, Fog provides a `bootstrap` method which creates a server and then performs the following actions via ssh:
|
497
|
+
|
498
|
+
1. Create `ROOT_USER/.ssh/authorized_keys` file using the ssh key specified in `:public_key_path`.
|
499
|
+
2. Lock password for root user using `passwd -l root`.
|
500
|
+
3. Create `ROOT_USER/attributes.json` file with the contents of `server.attributes`.
|
501
|
+
4. Create `ROOT_USER/metadata.json` file with the contents of `server.metadata`.
|
502
|
+
|
503
|
+
**Note**: Unlike the `create` method, `bootstrap` is blocking method call. If non-blocking behavior is desired, developers should use the `:personality` parameter on the `create` method.
|
504
|
+
|
505
|
+
The following example demonstrates bootstraping a server:
|
506
|
+
|
507
|
+
service.servers.bootstrap :name => 'bootstrap-server',
|
508
|
+
:flavor_id => service.flavors.first.id,
|
509
|
+
:image_id => service.images.find {|img| img.name =~ /Ubuntu/}.id,
|
510
|
+
:public_key_path => '~/.ssh/fog_rsa.pub',
|
511
|
+
:private_key_path => '~/.ssh/fog_rsa'
|
512
|
+
|
513
|
+
**Note**: The `:name`, `:flavor_id`, `:image_id`, `:public_key_path`, `:private_key_path` are required for the `bootstrap` method.
|
514
|
+
|
515
|
+
The `bootstrap` method uses the same additional parameters as the `create` method. Refer to the [Additional Parameters](#additional-parameters) section for more information.
|
516
|
+
|
517
|
+
## SSH
|
518
|
+
|
519
|
+
Once a server has been created and set up for ssh key authentication, fog can execute remote commands as follows:
|
520
|
+
|
521
|
+
result = server.ssh ['pwd']
|
522
|
+
|
523
|
+
This will return the following:
|
524
|
+
|
525
|
+
[#<Fog::SSH::Result:0x1108241d0 @stderr="", @status=0, @stdout="/root\r\n", @command="pwd">]
|
526
|
+
|
527
|
+
**Note**: SSH key authentication can be set up using `bootstrap` method or by using the `:personality` attribute on the `:create` method. See [Bootstrap](#bootstrap) or [Create Server](#create-server) for more information.
|
528
|
+
|
529
|
+
## Update Server
|
530
|
+
|
531
|
+
Next Gen Cloud Servers support updating the following attributes `name`, `access_ipv4_address`, and `access_ipv6_address`.
|
532
|
+
|
533
|
+
To update these attributes:
|
534
|
+
|
535
|
+
server.name = "batman"
|
536
|
+
server.access_ipv4_address = "10.0.0.1"
|
537
|
+
server.access_ipv6_address = "fdbb:1717:4533:7c89:0:0:0:1"
|
538
|
+
server.save
|
539
|
+
|
540
|
+
Additional information about server access addresses can be found [here](http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Primary_Addresses-d1e2558.html).
|
541
|
+
|
542
|
+
**Note**: Updating the server name does not change the host name. Names are not guaranteed to be unique.
|
543
|
+
|
544
|
+
## Delete Server
|
545
|
+
|
546
|
+
To delete a server:
|
547
|
+
|
548
|
+
server.destroy
|
549
|
+
|
550
|
+
**Note**: The server is not immediately destroyed, but it does occur shortly there after.
|
551
|
+
|
552
|
+
## Metadata
|
553
|
+
|
554
|
+
You can access metadata as an attribute on both `Fog::Compute::RackspaceV2::Server` and `Fog::Compute::RackspaceV2::Metadata::Image`. You can specify metadata during creation of a server or an image. Please refer to [Create Server](#create-server) or [Create Image](#create-image) sections for more information.
|
555
|
+
|
556
|
+
This example demonstrates how to iterate through a server's metadata:
|
557
|
+
|
558
|
+
server.metadata.each {|metadatum| puts "#{metadatum.key}: #{metadatum.value}" }
|
559
|
+
|
560
|
+
You can update and retrieve metadata in a manner similar to a hash:
|
561
|
+
|
562
|
+
server.metadata["os_type"]
|
563
|
+
|
564
|
+
server.metadata["installed_ruby"] = "MRI 1.9.3"
|
565
|
+
|
566
|
+
Metadata also responds to `save` and `reload` as follows:
|
567
|
+
|
568
|
+
server.metadata.save
|
569
|
+
|
570
|
+
server.metadata.reload
|
571
|
+
|
572
|
+
|
573
|
+
## Change Admin Password
|
574
|
+
|
575
|
+
To change the administrator password:
|
576
|
+
|
577
|
+
server.change_admin_password "superSecure"
|
578
|
+
|
579
|
+
## Reboot
|
580
|
+
|
581
|
+
To perform a soft reboot:
|
582
|
+
|
583
|
+
server.reboot
|
584
|
+
|
585
|
+
To perform a hard reboot:
|
586
|
+
|
587
|
+
server.reboot 'HARD'
|
588
|
+
|
589
|
+
## Rebuild
|
590
|
+
|
591
|
+
Rebuild removes all data on the server and replaces it with the specified image. The id and all IP addresses remain the same.
|
592
|
+
|
593
|
+
To rebuild a server:
|
594
|
+
|
595
|
+
image = service.images.first
|
596
|
+
server.rebuild image.id
|
597
|
+
|
598
|
+
Additionally, the `rebuild` method will take a second parameter containing a hash with the following values:
|
599
|
+
|
600
|
+
<table>
|
601
|
+
<tr>
|
602
|
+
<th>Key</th>
|
603
|
+
<th>Description</th>
|
604
|
+
</tr>
|
605
|
+
<tr>
|
606
|
+
<td>:name</td>
|
607
|
+
<td>Name of Server</td>
|
608
|
+
</tr>
|
609
|
+
<tr>
|
610
|
+
<td>:flavorRef</td>
|
611
|
+
<td>Flavor id</td>
|
612
|
+
</tr>
|
613
|
+
<tr>
|
614
|
+
<td>:accessIPv4</td>
|
615
|
+
<td>IPv4 access address</td>
|
616
|
+
</tr>
|
617
|
+
<tr>
|
618
|
+
<td>:accessIPv6</td>
|
619
|
+
<td>IPv6 access address</td>
|
620
|
+
</tr>
|
621
|
+
<tr>
|
622
|
+
<td>:metadata</td>
|
623
|
+
<td>Hash containing server metadata</td>
|
624
|
+
</tr>
|
625
|
+
<tr>
|
626
|
+
<td>:personality</td>
|
627
|
+
<td>File path and contents. Refer to Next Gen Server API documentation - <a href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html">Server Personality</a>. </td>
|
628
|
+
</tr>
|
629
|
+
<tr>
|
630
|
+
<td>:disk_config</td>
|
631
|
+
<td>The disk configuration value (AUTO or MANUAL). Refer to Next Gen Server API documentation - <a href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#diskconfig_attribute">Disk Configuration Extension</a>.</td>
|
632
|
+
</tr>
|
633
|
+
</table>
|
634
|
+
|
635
|
+
## Resize
|
636
|
+
|
637
|
+
Resizing a server allows you to change the resources dedicated to the server.
|
638
|
+
|
639
|
+
To resize a server:
|
640
|
+
|
641
|
+
flavor_id = service.flavor[2].id
|
642
|
+
server.resize flavor_id #flavor_id should be your desired flavor
|
643
|
+
|
644
|
+
During the resize process the server will have a state of `RESIZE`. Once a server has completed resizing it will be in a `VERIFY_RESIZE` state.
|
645
|
+
|
646
|
+
You can use Fog's `wait_for` method to wait for this state as follows:
|
647
|
+
|
648
|
+
server.wait_for { ready?('VERIFY_RESIZE', ['ACTIVE', 'ERROR']) }
|
649
|
+
|
650
|
+
|
651
|
+
In this case, `wait_for` is waiting for the server to become `VERIFY_READY` and will raise an exception if we enter an `ACTIVE` or `ERROR` state.
|
652
|
+
|
653
|
+
Once a server enters the `VERIFY_RESIZE` we will need to call `confirm_resize` to confirm the server was properly resized or `revert_resize` to rollback to the old size/flavor.
|
654
|
+
|
655
|
+
**Note:** A server will automatically confirm resize after 24 hours.
|
656
|
+
|
657
|
+
To confirm resize:
|
658
|
+
|
659
|
+
server.confirm_resize
|
660
|
+
|
661
|
+
To revert to previous size/flavor:
|
662
|
+
|
663
|
+
server.revert_resize
|
664
|
+
|
665
|
+
|
666
|
+
## Create Image
|
667
|
+
|
668
|
+
To create an image of your server:
|
669
|
+
|
670
|
+
image = server.create_image "back-image-#{server.name}", :metadata => { :environment => 'development' }
|
671
|
+
|
672
|
+
You can use the second parameter to specify image metadata. This is an optional parameter.
|
673
|
+
|
674
|
+
During the imaging process, the image state will be `SAVING`. The image is ready for use when when state `ACTIVE` is reached. Fog can use `wait_for` to wait for an active state as follows:
|
675
|
+
|
676
|
+
image.wait_for { ready? }
|
677
|
+
|
678
|
+
## List Attached Volumes
|
679
|
+
To list Cloud Block Volumes attached to server:
|
680
|
+
|
681
|
+
server.attachments
|
682
|
+
|
683
|
+
## Attach Volume
|
684
|
+
To attach volume using the volume id:
|
685
|
+
|
686
|
+
server.attach_volume "0e7a706c-340d-48b3-802d-192850387f93"
|
687
|
+
|
688
|
+
If the volume id is unknown you can look it up using the Cloud Block Storage service. Start by creating a `cbs_service` similar to our Compute Service:
|
689
|
+
|
690
|
+
cbs_service = Fog::Rackspace::BlockStorage.new({
|
691
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
692
|
+
:rackspace_api_key => RACKSPACE_API # Your Rackspace API key
|
693
|
+
})
|
694
|
+
|
695
|
+
volume = cbs_service.volumes.first
|
696
|
+
server.attach_volume volume, "/dev/xvdb" # name of device on server is optional
|
697
|
+
|
698
|
+
The `attach_volume` method accepts a volume id `String` or `Fog::Rackspace::BlockStorage::Volume` instance. This example also demonstrates passing in the optional device name. Valid device names are `/dev/xvd[a-p]`.
|
699
|
+
|
700
|
+
## Detach Volume
|
701
|
+
To detach a volume:
|
702
|
+
|
703
|
+
server.attachments.first.detach
|
704
|
+
|
705
|
+
## Examples
|
706
|
+
|
707
|
+
Example code using Next Gen Cloud Servers can be found [here](https://github.com/fog/fog/tree/master/lib/fog/rackspace/examples).
|
708
|
+
|
709
|
+
## Additional Resources
|
710
|
+
|
711
|
+
* [fog.io](http://fog.io/)
|
712
|
+
* [Fog rdoc](http://rubydoc.info/gems/fog/)
|
713
|
+
* [Fog Github repo](https://github.com/fog/fog)
|
714
|
+
* [Fog Github Issues](https://github.com/fog/fog/issues)
|
715
|
+
* [Excon Github repo](https://github.com/geemus/excon)
|
716
|
+
* [Next Gen Cloud Servers API](http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_preface.html)
|
717
|
+
|
718
|
+
## Support and Feedback
|
719
|
+
|
720
|
+
Your feedback is appreciated! If you have specific issues with the **fog** SDK, you should file an [issue via Github](https://github.com/fog/fog/issues).
|
721
|
+
|
722
|
+
For general feedback and support requests, please visit: https://developer.rackspace.com/support.
|
723
|
+
|