fog-rackspace 0.1.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.
- 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,417 @@
|
|
|
1
|
+
#Cloud Block Storage (BlockStorage)
|
|
2
|
+
|
|
3
|
+
This document explains how to get started using Cloud Block Storage with Fog. It assumes you have read the [Getting Started with Fog and the Rackspace Open Cloud](getting_started.md) document.
|
|
4
|
+
|
|
5
|
+
## Starting irb console
|
|
6
|
+
Start by executing the following command:
|
|
7
|
+
|
|
8
|
+
irb
|
|
9
|
+
|
|
10
|
+
Once `irb` has launched you need to require the Fog library.
|
|
11
|
+
|
|
12
|
+
If using Ruby 1.8.x execute:
|
|
13
|
+
|
|
14
|
+
require 'rubygems'
|
|
15
|
+
require 'fog'
|
|
16
|
+
|
|
17
|
+
If using Ruby 1.9.x execute:
|
|
18
|
+
|
|
19
|
+
require 'fog'
|
|
20
|
+
|
|
21
|
+
## Create Service
|
|
22
|
+
|
|
23
|
+
Next, create a connection to Cloud Block Storage:
|
|
24
|
+
|
|
25
|
+
Using a US-based account:
|
|
26
|
+
|
|
27
|
+
service = Fog::Rackspace::BlockStorage.new({
|
|
28
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
|
29
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
|
30
|
+
:rackspace_region => :ord, # Defaults to :dfw
|
|
31
|
+
:connection_options => {} # Optional
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
Using a UK-based account:
|
|
35
|
+
|
|
36
|
+
service = Fog::Rackspace::BlockStorage.new({
|
|
37
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
|
38
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
|
39
|
+
:rackspace_auth_url => Fog::Rackspace::UK_AUTH_ENDPOINT,
|
|
40
|
+
:rackspace_region => :lon,
|
|
41
|
+
:connection_options => {} # Optional
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
To learn more about obtaining cloud credentials refer to the [Getting Started with Fog and the Rackspace Open Cloud](getting_started.md) document.
|
|
45
|
+
|
|
46
|
+
By default `Fog::Rackspace::BlockStorage` 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.
|
|
47
|
+
|
|
48
|
+
Alternative regions are specified using the key `:rackspace_region `. A list of regions available for Cloud Block Storage can be found by executing the following:
|
|
49
|
+
|
|
50
|
+
identity_service = Fog::Identity({
|
|
51
|
+
:provider => 'Rackspace', # Rackspace Fog provider
|
|
52
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
|
53
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
|
54
|
+
:rackspace_auth_url => Fog::Rackspace::UK_AUTH_ENDPOINT # Not specified for US Cloud
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
identity_service.service_catalog.display_service_regions :cloudBlockStorage
|
|
58
|
+
|
|
59
|
+
Rackspace Private Cloud installations can skip specifying a region and directly specify their custom service endpoints using the key `:rackspace_block_storage_url`.
|
|
60
|
+
|
|
61
|
+
**Note**: A`Fog::Rackspace::BlockStorage` instance is needed for the desired region.
|
|
62
|
+
|
|
63
|
+
### Optional Connection Parameters
|
|
64
|
+
|
|
65
|
+
Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
|
|
66
|
+
|
|
67
|
+
<table>
|
|
68
|
+
<tr>
|
|
69
|
+
<th>Key</th>
|
|
70
|
+
<th>Description</th>
|
|
71
|
+
</tr>
|
|
72
|
+
<tr>
|
|
73
|
+
<td>:connect_timeout</td>
|
|
74
|
+
<td>Connection timeout (default: 60 seconds)</td>
|
|
75
|
+
</tr>
|
|
76
|
+
<tr>
|
|
77
|
+
<td>:read_timeout</td>
|
|
78
|
+
<td>Read timeout for connection (default: 60 seconds)</td> </tr>
|
|
79
|
+
<tr>
|
|
80
|
+
<td>:write_timeout</td>
|
|
81
|
+
<td>Write timeout for connection (default: 60 seconds)</td>
|
|
82
|
+
</tr>
|
|
83
|
+
<tr>
|
|
84
|
+
<td>:proxy</td>
|
|
85
|
+
<td>Proxy for HTTP and HTTPS connections</td>
|
|
86
|
+
</tr>
|
|
87
|
+
<tr>
|
|
88
|
+
<td>:ssl_ca_path</td>
|
|
89
|
+
<td>Path to SSL certificate authorities</td>
|
|
90
|
+
</tr>
|
|
91
|
+
<tr>
|
|
92
|
+
<td>:ssl_ca_file</td>
|
|
93
|
+
<td>SSL certificate authority file</td>
|
|
94
|
+
</tr>
|
|
95
|
+
<tr>
|
|
96
|
+
<td>:ssl_verify_peer</td>
|
|
97
|
+
<td>SSL verify peer (default: true)</td>
|
|
98
|
+
</tr>
|
|
99
|
+
</table>
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## Fog Abstractions
|
|
103
|
+
|
|
104
|
+
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.
|
|
105
|
+
|
|
106
|
+
### Request Layer
|
|
107
|
+
|
|
108
|
+
The request abstraction maps directly to the [Cloud Block Storage API](http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/overview.html). It provides the most efficient interface to the Rackspace Open Cloud.
|
|
109
|
+
|
|
110
|
+
To see a list of requests supported by the service:
|
|
111
|
+
|
|
112
|
+
service.requests
|
|
113
|
+
|
|
114
|
+
This returns:
|
|
115
|
+
|
|
116
|
+
:create_volume, :delete_volume, :get_volume, :list_volumes, :get_volume_type, :list_volume_types, :create_snapshot, :delete_snapshot, :get_snapshot, :list_snapshots
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
#### Example Request
|
|
120
|
+
|
|
121
|
+
To request a list of volume types:
|
|
122
|
+
|
|
123
|
+
response = service.list_volume_types
|
|
124
|
+
|
|
125
|
+
This returns in the following `Excon::Response`:
|
|
126
|
+
|
|
127
|
+
<Excon::Response:0x10a708fb8 @remote_ip="72.32.164.210", @body="{\"volume_types\": [{\"extra_specs\": {}, \"name\": \"SATA\", \"id\": 1}, {\"extra_specs\": {}, \"name\": \"SSD\", \"id\": 2}]}", @status=200, @headers={"Date"=>"Mon, 18 Mar 2013 20:26:03 GMT", "Content-Length"=>"109", "Content-Type"=>"application/json", "X-Compute-Request-Id"=>"req-9c2093d4-8a41-4d8b-a069-114470d1a0dd"}, @data={:status=>200, :headers=>{"Date"=>"Mon, 18 Mar 2013 20:26:03 GMT", "Content-Length"=>"109", "Content-Type"=>"application/json", "X-Compute-Request-Id"=>"req-9c2093d4-8a41-4d8b-a069-114470d1a0dd"}, :remote_ip=>"72.32.164.210", :body=>{"volume_types"=>[{"name"=>"SATA", "id"=>1, "extra_specs"=>{}}, {"name"=>"SSD", "id"=>2, "extra_specs"=>{}}]}}>
|
|
128
|
+
|
|
129
|
+
To view the status of the response:
|
|
130
|
+
|
|
131
|
+
response.status
|
|
132
|
+
|
|
133
|
+
**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.
|
|
134
|
+
|
|
135
|
+
To view response body:
|
|
136
|
+
|
|
137
|
+
response.body
|
|
138
|
+
|
|
139
|
+
This will return:
|
|
140
|
+
|
|
141
|
+
{"volume_types"=>[{"name"=>"SATA", "id"=>1, "extra_specs"=>{}}, {"name"=>"SSD", "id"=>2, "extra_specs"=>{}}]}
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
To learn more about Cloud Block Storage request methods refer to [rdoc](http://rubydoc.info/gems/fog/Fog/Rackspace/BlockStorage/Real). To learn more about Excon refer to [Excon GitHub repo](https://github.com/geemus/excon).
|
|
145
|
+
|
|
146
|
+
### Model Layer
|
|
147
|
+
|
|
148
|
+
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.
|
|
149
|
+
|
|
150
|
+
Here is a summary of common model methods:
|
|
151
|
+
|
|
152
|
+
<table>
|
|
153
|
+
<tr>
|
|
154
|
+
<th>Method</th>
|
|
155
|
+
<th>Description</th>
|
|
156
|
+
</tr>
|
|
157
|
+
<tr>
|
|
158
|
+
<td>create</td>
|
|
159
|
+
<td>
|
|
160
|
+
Accepts hash of attributes and creates object.<br>
|
|
161
|
+
Note: creation is a non-blocking call and you will be required to wait for a valid state before using resulting object.
|
|
162
|
+
</td>
|
|
163
|
+
</tr>
|
|
164
|
+
<tr>
|
|
165
|
+
<td>save</td>
|
|
166
|
+
<td>Saves object.<br>
|
|
167
|
+
Note: not all objects support updating object.</td>
|
|
168
|
+
</tr>
|
|
169
|
+
<tr>
|
|
170
|
+
<td>persisted?</td>
|
|
171
|
+
<td>Returns true if the object has been persisted.</td>
|
|
172
|
+
</tr>
|
|
173
|
+
<tr>
|
|
174
|
+
<td>destroy</td>
|
|
175
|
+
<td>
|
|
176
|
+
Destroys object.<br>
|
|
177
|
+
Note: this is a non-blocking call and object deletion might not be instantaneous.
|
|
178
|
+
</td>
|
|
179
|
+
<tr>
|
|
180
|
+
<td>reload</td>
|
|
181
|
+
<td>Updates object with latest state from service.</td>
|
|
182
|
+
<tr>
|
|
183
|
+
<td>ready?</td>
|
|
184
|
+
<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>
|
|
185
|
+
</tr>
|
|
186
|
+
<tr>
|
|
187
|
+
<td>attributes</td>
|
|
188
|
+
<td>Returns a hash containing the list of model attributes and values.</td>
|
|
189
|
+
</tr>
|
|
190
|
+
<td>identity</td>
|
|
191
|
+
<td>
|
|
192
|
+
Returns the identity of the object.<br>
|
|
193
|
+
Note: This might not always be equal to object.id.
|
|
194
|
+
</td>
|
|
195
|
+
</tr>
|
|
196
|
+
<tr>
|
|
197
|
+
<td>wait_for</td>
|
|
198
|
+
<td>This method periodically reloads model and then yields to specified block until block returns true or a timeout occurs.</td>
|
|
199
|
+
</tr>
|
|
200
|
+
</table>
|
|
201
|
+
|
|
202
|
+
The remainder of this document details the model abstraction.
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## List Volume Types
|
|
206
|
+
|
|
207
|
+
To retrieve a list of volume types:
|
|
208
|
+
|
|
209
|
+
service.volume_types
|
|
210
|
+
|
|
211
|
+
This returns a collection of `Fog::Rackspace::BlockStorage::VolumeType` models:
|
|
212
|
+
|
|
213
|
+
<Fog::Rackspace::BlockStorage::VolumeTypes
|
|
214
|
+
[
|
|
215
|
+
<Fog::Rackspace::BlockStorage::VolumeType
|
|
216
|
+
id=1,
|
|
217
|
+
name="SATA",
|
|
218
|
+
extra_specs={}
|
|
219
|
+
>,
|
|
220
|
+
<Fog::Rackspace::BlockStorage::VolumeType
|
|
221
|
+
id=2,
|
|
222
|
+
name="SSD",
|
|
223
|
+
extra_specs={}
|
|
224
|
+
>
|
|
225
|
+
]
|
|
226
|
+
>
|
|
227
|
+
|
|
228
|
+
## List Volumes
|
|
229
|
+
|
|
230
|
+
To retrieve a list of volumes:
|
|
231
|
+
|
|
232
|
+
service.volumes
|
|
233
|
+
|
|
234
|
+
This returns a collection of `Fog::Rackspace::BlockStorage::Volume` models:
|
|
235
|
+
|
|
236
|
+
<Fog::Rackspace::BlockStorage::Volumes
|
|
237
|
+
[
|
|
238
|
+
<Fog::Rackspace::BlockStorage::Volume
|
|
239
|
+
id="a53a532f-546c-4da3-8c2d-b26be1046630",
|
|
240
|
+
created_at="2013-03-19T14:19:16.000000",
|
|
241
|
+
state="available",
|
|
242
|
+
display_name="fog-ssd",
|
|
243
|
+
display_description=nil,
|
|
244
|
+
size=100,
|
|
245
|
+
attachments=[],
|
|
246
|
+
volume_type="SSD",
|
|
247
|
+
availability_zone="nova"
|
|
248
|
+
>,
|
|
249
|
+
<Fog::Rackspace::BlockStorage::Volume
|
|
250
|
+
id="e2359473-9933-483f-90df-deb4a9fb25ae",
|
|
251
|
+
created_at="2013-03-19T14:16:45.000000",
|
|
252
|
+
state="available",
|
|
253
|
+
display_name="fog-example",
|
|
254
|
+
display_description=nil,
|
|
255
|
+
size=100,
|
|
256
|
+
attachments=[],
|
|
257
|
+
volume_type="SATA",
|
|
258
|
+
availability_zone="nova"
|
|
259
|
+
>
|
|
260
|
+
]
|
|
261
|
+
>
|
|
262
|
+
|
|
263
|
+
## Get Volume
|
|
264
|
+
|
|
265
|
+
To retrieve an individual volume:
|
|
266
|
+
|
|
267
|
+
service.volume.get "fog-example"
|
|
268
|
+
|
|
269
|
+
This returns a `Fog::Rackspace::BlockStorage::Volume`:
|
|
270
|
+
|
|
271
|
+
<Fog::Rackspace::BlockStorage::Volume
|
|
272
|
+
id="e2359473-9933-483f-90df-deb4a9fb25ae",
|
|
273
|
+
created_at="2013-03-19T14:16:45.000000",
|
|
274
|
+
state="available",
|
|
275
|
+
display_name="fog-example",
|
|
276
|
+
display_description=nil,
|
|
277
|
+
size=100,
|
|
278
|
+
attachments=[],
|
|
279
|
+
volume_type="SATA",
|
|
280
|
+
availability_zone="nova"
|
|
281
|
+
>
|
|
282
|
+
|
|
283
|
+
## Create Volume
|
|
284
|
+
|
|
285
|
+
To create a volume:
|
|
286
|
+
|
|
287
|
+
volume = service.volumes.create(:size => 100, :display_name => 'fog-ssd', :volume_type => 'SSD')
|
|
288
|
+
|
|
289
|
+
This will return a `Fog::Rackspace::BlockStorage::Volume`:
|
|
290
|
+
|
|
291
|
+
<Fog::Rackspace::BlockStorage::Volume
|
|
292
|
+
id="a53a532f-546c-4da3-8c2d-b26be1046630",
|
|
293
|
+
created_at="2013-03-19T14:19:16.000000",
|
|
294
|
+
state="available",
|
|
295
|
+
display_name="fog-ssd",
|
|
296
|
+
display_description=nil,
|
|
297
|
+
size=100,
|
|
298
|
+
attachments=[],
|
|
299
|
+
volume_type="SSD",
|
|
300
|
+
availability_zone="nova"
|
|
301
|
+
>
|
|
302
|
+
|
|
303
|
+
**Note**: The `:size` parameter is the only required parameter and is in gigabytes. Volumes must be a minimum of 100 GB.
|
|
304
|
+
|
|
305
|
+
### Additional Parameters
|
|
306
|
+
|
|
307
|
+
The `create` method also supports the following key values:
|
|
308
|
+
|
|
309
|
+
<table>
|
|
310
|
+
<tr>
|
|
311
|
+
<th>Key</th>
|
|
312
|
+
<th>Description</th>
|
|
313
|
+
</tr>
|
|
314
|
+
<tr>
|
|
315
|
+
<td>:display_name</td>
|
|
316
|
+
<td>The name of the volume.</td>
|
|
317
|
+
</tr>
|
|
318
|
+
<tr>
|
|
319
|
+
<td>:display_description</td>
|
|
320
|
+
<td>A description of the volume.</td>
|
|
321
|
+
</tr>
|
|
322
|
+
<tr>
|
|
323
|
+
<td>:snapshot_id</td>
|
|
324
|
+
<td>The optional snapshot from which to create a volume.</td>
|
|
325
|
+
</tr>
|
|
326
|
+
<tr>
|
|
327
|
+
<td>:volume_type</td>
|
|
328
|
+
<td>The type of volume to create. Refer to <a href="#list-volume-types">List Volume Types</a> section for valid types. SATA is the default volume type.</td>
|
|
329
|
+
</tr>
|
|
330
|
+
</table>
|
|
331
|
+
|
|
332
|
+
## Attach Volume
|
|
333
|
+
|
|
334
|
+
Please refer to the [Attach Volume](compute_v2.md#attach-volume) section in the [Next Generation Cloud Servers™ (compute_v2)](compute_v2.md) documentation.
|
|
335
|
+
|
|
336
|
+
## Detach Volume
|
|
337
|
+
|
|
338
|
+
Please refer to the [Detach Volume](compute_v2.md#detach-volume) section in the [Next Generation Cloud Servers™ (compute_v2)](compute_v2.md) documentation.
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
## Delete Volume
|
|
342
|
+
|
|
343
|
+
To delete a volume:
|
|
344
|
+
|
|
345
|
+
volume.destroy
|
|
346
|
+
|
|
347
|
+
**Note**: You cannot delete a volume until all of its dependent snapshots have been deleted.
|
|
348
|
+
|
|
349
|
+
## List Snapshots
|
|
350
|
+
|
|
351
|
+
To retrieve a list of snapshots:
|
|
352
|
+
|
|
353
|
+
service.snapshots
|
|
354
|
+
|
|
355
|
+
To retrieve a list of snapshots for a given volume:
|
|
356
|
+
|
|
357
|
+
volume.snapshots
|
|
358
|
+
|
|
359
|
+
## Create Snapshot
|
|
360
|
+
|
|
361
|
+
A snapshot is a point-in-time copy of a volume. Each subsequent snapshot will be the difference between the previous snapshot and the current volume.
|
|
362
|
+
|
|
363
|
+
To create a snapshot of a given volume:
|
|
364
|
+
|
|
365
|
+
volume.create_snapshot :display_name => 'initial-snapshot'
|
|
366
|
+
|
|
367
|
+
**Note**: All writes to the volume should be flushed before creating the snapshot, either by unmounting any file systems on the volume or by detaching the volume.
|
|
368
|
+
|
|
369
|
+
### Additional Parameters
|
|
370
|
+
|
|
371
|
+
The `create_snapshot` method also supports the following key values:
|
|
372
|
+
|
|
373
|
+
<table>
|
|
374
|
+
<tr>
|
|
375
|
+
<th>Key</th>
|
|
376
|
+
<th>Description</th>
|
|
377
|
+
</tr>
|
|
378
|
+
<tr>
|
|
379
|
+
<td>:display_name</td>
|
|
380
|
+
<td>The name of the snapshot.</td>
|
|
381
|
+
</tr>
|
|
382
|
+
<tr>
|
|
383
|
+
<td>:display_description</td>
|
|
384
|
+
<td>A description of the snapshot.</td>
|
|
385
|
+
</tr>
|
|
386
|
+
<tr>
|
|
387
|
+
<td>:force</td>
|
|
388
|
+
<td>If set to true, snapshot will be taken even if volume is still mounted.</td>
|
|
389
|
+
</tr>
|
|
390
|
+
</table>
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
## Delete Snapshot
|
|
395
|
+
|
|
396
|
+
To delete a snapshot:
|
|
397
|
+
|
|
398
|
+
snapshot.destroy
|
|
399
|
+
|
|
400
|
+
## Examples
|
|
401
|
+
|
|
402
|
+
Example code using Cloud Block Storage can be found [here](https://github.com/fog/fog/tree/master/lib/fog/rackspace/examples).
|
|
403
|
+
|
|
404
|
+
## Additional Resources
|
|
405
|
+
|
|
406
|
+
* [fog.io](http://fog.io/)
|
|
407
|
+
* [Fog rdoc](http://rubydoc.info/gems/fog/)
|
|
408
|
+
* [Fog Github repo](https://github.com/fog/fog)
|
|
409
|
+
* [Fog Github Issues](https://github.com/fog/fog/issues)
|
|
410
|
+
* [Excon Github repo](https://github.com/geemus/excon)
|
|
411
|
+
* [Cloud Block Storage API](http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/index.html)
|
|
412
|
+
|
|
413
|
+
## Support and Feedback
|
|
414
|
+
|
|
415
|
+
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).
|
|
416
|
+
|
|
417
|
+
For general feedback and support requests, please visit: https://developer.rackspace.com/support.
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
#Rackspace CDNV2
|
|
2
|
+
|
|
3
|
+
This document explains how to get started using CDNV2 with Fog. It assumes you have read the [Getting Started with Fog and the Rackspace Open Cloud](getting_started.md) document.
|
|
4
|
+
|
|
5
|
+
## Starting irb console
|
|
6
|
+
|
|
7
|
+
Start by executing the following command:
|
|
8
|
+
|
|
9
|
+
irb
|
|
10
|
+
|
|
11
|
+
Once `irb` has launched you need to require the Fog library.
|
|
12
|
+
|
|
13
|
+
If using Ruby 1.8.x execute:
|
|
14
|
+
|
|
15
|
+
require 'rubygems'
|
|
16
|
+
require 'fog'
|
|
17
|
+
|
|
18
|
+
If using Ruby 1.9.x execute:
|
|
19
|
+
|
|
20
|
+
require 'fog'
|
|
21
|
+
|
|
22
|
+
## Create Service
|
|
23
|
+
|
|
24
|
+
Next, create a connection to Rackspace's CDNV2 API:
|
|
25
|
+
|
|
26
|
+
Using a US-based account:
|
|
27
|
+
|
|
28
|
+
service = Fog::Rackspace::CDNV2.new({
|
|
29
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
|
30
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
|
31
|
+
:rackspace_region => :ord, # Defaults to :dfw
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
Using a UK-based account:
|
|
35
|
+
|
|
36
|
+
service = Fog::Compute.new({
|
|
37
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
|
38
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
|
39
|
+
:rackspace_auth_url => Fog::Rackspace::UK_AUTH_ENDPOINT,
|
|
40
|
+
:rackspace_region => :lon,
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
To learn more about obtaining cloud credentials refer to the [Getting Started with Fog and the Rackspace Open Cloud](getting_started.md) document.
|
|
44
|
+
|
|
45
|
+
By default `Fog::Rackspace::CDNV2` 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.
|
|
46
|
+
|
|
47
|
+
Alternative regions are specified using the key `:rackspace_region `. A list of regions available for Cloud Servers can be found by executing the following:
|
|
48
|
+
|
|
49
|
+
identity_service = Fog::Identity({
|
|
50
|
+
:provider => 'Rackspace', # Rackspace Fog provider
|
|
51
|
+
:rackspace_username => RACKSPACE_USER_NAME, # Your Rackspace Username
|
|
52
|
+
:rackspace_api_key => RACKSPACE_API, # Your Rackspace API key
|
|
53
|
+
:rackspace_auth_url => Fog::Rackspace::UK_AUTH_ENDPOINT # Not specified for US Cloud
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
identity_service.service_catalog.display_service_regions :cloudServersOpenStack
|
|
57
|
+
|
|
58
|
+
### Optional Connection Parameters
|
|
59
|
+
|
|
60
|
+
Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
|
|
61
|
+
|
|
62
|
+
<table>
|
|
63
|
+
<tr>
|
|
64
|
+
<th>Key</th>
|
|
65
|
+
<th>Description</th>
|
|
66
|
+
</tr>
|
|
67
|
+
<tr>
|
|
68
|
+
<td>:connect_timeout</td>
|
|
69
|
+
<td>Connection timeout (default: 60 seconds)</td>
|
|
70
|
+
</tr>
|
|
71
|
+
<tr>
|
|
72
|
+
<td>:read_timeout</td>
|
|
73
|
+
<td>Read timeout for connection (default: 60 seconds)</td> </tr>
|
|
74
|
+
<tr>
|
|
75
|
+
<td>:write_timeout</td>
|
|
76
|
+
<td>Write timeout for connection (default: 60 seconds)</td>
|
|
77
|
+
</tr>
|
|
78
|
+
<tr>
|
|
79
|
+
<td>:proxy</td>
|
|
80
|
+
<td>Proxy for HTTP and HTTPS connections</td>
|
|
81
|
+
</tr>
|
|
82
|
+
<tr>
|
|
83
|
+
<td>:ssl_ca_path</td>
|
|
84
|
+
<td>Path to SSL certificate authorities</td>
|
|
85
|
+
</tr>
|
|
86
|
+
<tr>
|
|
87
|
+
<td>:ssl_ca_file</td>
|
|
88
|
+
<td>SSL certificate authority file</td>
|
|
89
|
+
</tr>
|
|
90
|
+
<tr>
|
|
91
|
+
<td>:ssl_verify_peer</td>
|
|
92
|
+
<td>SSL verify peer (default: true)</td>
|
|
93
|
+
</tr>
|
|
94
|
+
</table>
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
## Fog Abstractions
|
|
98
|
+
|
|
99
|
+
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.
|
|
100
|
+
|
|
101
|
+
### Request Layer
|
|
102
|
+
|
|
103
|
+
The request abstraction maps directly to the [CDNV2 API](http://docs.rackspace.com/networks/api/v2/cn-devguide/content/ch_overview.html). It provides the most efficient interface to the Rackspace CDNV2
|
|
104
|
+
|
|
105
|
+
To see a list of requests supported by the service:
|
|
106
|
+
|
|
107
|
+
service.requests
|
|
108
|
+
|
|
109
|
+
This returns:
|
|
110
|
+
|
|
111
|
+
[:create_service, :delete_assets, :delete_service, :get_flavor, :get_home_document, :get_ping, :get_service, :list_flavors, :list_services, :update_service]
|
|
112
|
+
|
|
113
|
+
#### Example Request
|
|
114
|
+
|
|
115
|
+
To request a list of services:
|
|
116
|
+
|
|
117
|
+
response = service.list_services
|
|
118
|
+
|
|
119
|
+
This returns in the following `Excon::Response`:
|
|
120
|
+
|
|
121
|
+
#<Excon::Response:0x007ff0ea6b4c88 @data={:body=>{"services"=>[{"name"=>"SomethingDifferent.net", "domains"=>[{"domain"=>"google.com", "protocol"=>"http"}], "origins"=>[{"origin"=>"google.com", "port"=>80, "ssl"=>false, "rules"=>[]}], "restrictions"=>[], "caching"=>[], "status"=>"create_in_progress", "flavor_id"=>"cdn", "errors"=>[]
|
|
122
|
+
|
|
123
|
+
To view the status of the response:
|
|
124
|
+
|
|
125
|
+
response.status
|
|
126
|
+
|
|
127
|
+
**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.
|
|
128
|
+
|
|
129
|
+
To view response body:
|
|
130
|
+
|
|
131
|
+
response.body
|
|
132
|
+
|
|
133
|
+
This will return:
|
|
134
|
+
|
|
135
|
+
{"services"=>[{"name"=>"SomethingDifferent.net", "domains"=>[{"domain"=>"google.com",...
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
To learn more about CDNV2 request methods refer to [rdoc](http://www.rubydoc.info/gems/fog/Fog/Rackspace/CDNV2/Real). To learn more about Excon refer to [Excon GitHub repo](https://github.com/geemus/excon).
|
|
139
|
+
|
|
140
|
+
### Model Layer
|
|
141
|
+
|
|
142
|
+
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.
|
|
143
|
+
|
|
144
|
+
Here is a summary of common model methods:
|
|
145
|
+
|
|
146
|
+
<table>
|
|
147
|
+
<tr>
|
|
148
|
+
<th>Method</th>
|
|
149
|
+
<th>Description</th>
|
|
150
|
+
</tr>
|
|
151
|
+
<tr>
|
|
152
|
+
<td>create</td>
|
|
153
|
+
<td>
|
|
154
|
+
Accepts hash of attributes and creates object.<br>
|
|
155
|
+
Note: creation is a non-blocking call and you will be required to wait for a valid state before using resulting object.
|
|
156
|
+
</td>
|
|
157
|
+
</tr>
|
|
158
|
+
<tr>
|
|
159
|
+
<td>save</td>
|
|
160
|
+
<td>Saves object.<br>
|
|
161
|
+
Note: not all objects support updating object.</td>
|
|
162
|
+
</tr>
|
|
163
|
+
<tr>
|
|
164
|
+
<td>persisted?</td>
|
|
165
|
+
<td>Returns true if the object has been persisted.</td>
|
|
166
|
+
</tr>
|
|
167
|
+
<tr>
|
|
168
|
+
<td>destroy</td>
|
|
169
|
+
<td>
|
|
170
|
+
Destroys object.<br>
|
|
171
|
+
Note: this is a non-blocking call and object deletion might not be instantaneous.
|
|
172
|
+
</td>
|
|
173
|
+
<tr>
|
|
174
|
+
<td>reload</td>
|
|
175
|
+
<td>Updates object with latest state from service.</td>
|
|
176
|
+
<tr>
|
|
177
|
+
<td>ready?</td>
|
|
178
|
+
<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>
|
|
179
|
+
</tr>
|
|
180
|
+
<tr>
|
|
181
|
+
<td>attributes</td>
|
|
182
|
+
<td>Returns a hash containing the list of model attributes and values.</td>
|
|
183
|
+
</tr>
|
|
184
|
+
<td>identity</td>
|
|
185
|
+
<td>
|
|
186
|
+
Returns the identity of the object.<br>
|
|
187
|
+
Note: This might not always be equal to object.id.
|
|
188
|
+
</td>
|
|
189
|
+
</tr>
|
|
190
|
+
<tr>
|
|
191
|
+
<td>wait_for</td>
|
|
192
|
+
<td>This method periodically reloads model and then yields to specified block until block returns true or a timeout occurs.</td>
|
|
193
|
+
</tr>
|
|
194
|
+
</table>
|
|
195
|
+
|
|
196
|
+
The remainder of this document details the model abstraction.
|
|
197
|
+
|
|
198
|
+
## List Services
|
|
199
|
+
|
|
200
|
+
To retrieve a list of available services:
|
|
201
|
+
|
|
202
|
+
service.services
|
|
203
|
+
|
|
204
|
+
This returns a collection of `Fog::Rackspace::CDNV2::Service` models:
|
|
205
|
+
|
|
206
|
+
<Fog::Rackspace::CDNV2::Services
|
|
207
|
+
[
|
|
208
|
+
<Fog::Rackspace::CDNV2::Service
|
|
209
|
+
id="087ffeb0-462d-4f44-b24a-2914fbfb1d42",
|
|
210
|
+
name="SomethingDifferent.net",
|
|
211
|
+
domains=[{"domain"=>"google.com", "protocol"=>"http"}],
|
|
212
|
+
origins=[{"origin"=>"google.com", "port"=>80, "ssl"=>false, "rules"=>[]}],
|
|
213
|
+
caching=[],
|
|
214
|
+
restrictions=[],
|
|
215
|
+
flavor_id="cdn",
|
|
216
|
+
status="create_in_progress",
|
|
217
|
+
links=[{"href"=>"", "rel"=>"self"}, {"href"=>"...", "rel"=>"flavor"}]
|
|
218
|
+
...
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
## Create Service
|
|
222
|
+
|
|
223
|
+
Create a service:
|
|
224
|
+
|
|
225
|
+
s = service.services.new
|
|
226
|
+
s.name = "work.com"
|
|
227
|
+
s.flavor_id = "cdn"
|
|
228
|
+
s.add_domain "google.com"
|
|
229
|
+
s.add_origin "google.com"
|
|
230
|
+
s.save
|
|
231
|
+
|
|
232
|
+
## Update Service
|
|
233
|
+
You may add, remove, or update. -- **DOCS NEEDED** --
|
|
234
|
+
|
|
235
|
+
s = service.services.first
|
|
236
|
+
s.add_operation({
|
|
237
|
+
op: "add",
|
|
238
|
+
path: "/domains/0",
|
|
239
|
+
value: {
|
|
240
|
+
origin: "cdn.somewhere.org",
|
|
241
|
+
port: 80,
|
|
242
|
+
ssl: false,
|
|
243
|
+
rules: [
|
|
244
|
+
{
|
|
245
|
+
name: "Something",
|
|
246
|
+
request_url: "google.com"
|
|
247
|
+
}
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
s.save
|
|
253
|
+
|
|
254
|
+
## Get Service
|
|
255
|
+
|
|
256
|
+
To retrieve individual service:
|
|
257
|
+
|
|
258
|
+
service.services.get "087ffeb0-462d-4f44-b24a-2914fbfb1d42"
|
|
259
|
+
|
|
260
|
+
This returns an `Fog::Rackspace::CDNV2::Service` instance:
|
|
261
|
+
|
|
262
|
+
<Fog::Rackspace::CDNV2::Service
|
|
263
|
+
id="087ffeb0-462d-4f44-b24a-2914fbfb1d42"
|
|
264
|
+
name="work.com",
|
|
265
|
+
domains=[{"domain"=>"google.com", "protocol"=>"http"}],
|
|
266
|
+
origins=[{"origin"=>"google.com", "port"=>80, "ssl"=>false, "rules"=>[]}],
|
|
267
|
+
caching=[],
|
|
268
|
+
restrictions=[],
|
|
269
|
+
flavor_id="cdn",
|
|
270
|
+
status="create_in_progress",
|
|
271
|
+
links=[{"href"=>"", "rel"=>"self"}, {"href"=>"...", "rel"=>"flavor"}]
|
|
272
|
+
|
|
273
|
+
## Delete Service
|
|
274
|
+
|
|
275
|
+
To delete a service:
|
|
276
|
+
|
|
277
|
+
service.destroy
|
|
278
|
+
|
|
279
|
+
**Note**: The service is not immediately destroyed, but it does occur shortly there after.
|
|
280
|
+
|
|
281
|
+
## Delete Service Assets
|
|
282
|
+
|
|
283
|
+
To delete a service's assets (or any owned asset via url):
|
|
284
|
+
|
|
285
|
+
service.destroy_assets(url: "/")
|
|
286
|
+
|
|
287
|
+
**Note**: The service's asset is not immediately destroyed, but it does occur shortly there after.
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
## List Flavors
|
|
291
|
+
|
|
292
|
+
To retrieve a list of available flavors:
|
|
293
|
+
|
|
294
|
+
service.flavors
|
|
295
|
+
|
|
296
|
+
This returns a collection of `Fog::Rackspace::CDNV2::Flavor` models:
|
|
297
|
+
|
|
298
|
+
<Fog::Rackspace::CDNV2::Flavors
|
|
299
|
+
[
|
|
300
|
+
<Fog::Rackspace::CDNV2::Flavor
|
|
301
|
+
id="cdn",
|
|
302
|
+
providers=[{"provider"=>"akamai", "links"=>[{"href"=>"http://www.akamai.com", "rel"=>"provider_url"}]}],
|
|
303
|
+
links=[{"href"=>"...", "rel"=>"self"}]
|
|
304
|
+
>
|
|
305
|
+
]
|
|
306
|
+
>
|
|
307
|
+
|
|
308
|
+
## Get Flavor
|
|
309
|
+
|
|
310
|
+
To retrieve individual flavor:
|
|
311
|
+
|
|
312
|
+
service.flavors.get "cdn"
|
|
313
|
+
|
|
314
|
+
This returns an `Fog::Rackspace::CDNV2::Flavor` instance:
|
|
315
|
+
|
|
316
|
+
<Fog::Rackspace::CDNV2::Flavor
|
|
317
|
+
id="cdn",
|
|
318
|
+
providers=[{"provider"=>"akamai", "links"=>[{"href"=>"http://www.akamai.com", "rel"=>"provider_url"}]}],
|
|
319
|
+
links=[{"href"=>"...", "rel"=>"self"}]
|
|
320
|
+
>
|
|
321
|
+
|
|
322
|
+
## Ping
|
|
323
|
+
|
|
324
|
+
To ping the CDN:
|
|
325
|
+
|
|
326
|
+
service.ping
|
|
327
|
+
|
|
328
|
+
This returns an boolean based on successful ping.
|
|
329
|
+
|
|
330
|
+
## Get Home Document
|
|
331
|
+
|
|
332
|
+
To retrieve the home document:
|
|
333
|
+
|
|
334
|
+
service.home_document
|
|
335
|
+
|
|
336
|
+
This returns a JSON blob that describes the home document.
|
|
337
|
+
|
|
338
|
+
## Additional Resources
|
|
339
|
+
|
|
340
|
+
* [fog.io](http://fog.io/)
|
|
341
|
+
* [Fog rdoc](http://rubydoc.info/gems/fog/)
|
|
342
|
+
* [Fog Github repo](https://github.com/fog/fog)
|
|
343
|
+
* [Fog Github Issues](https://github.com/fog/fog/issues)
|
|
344
|
+
* [Excon Github repo](https://github.com/geemus/excon)
|
|
345
|
+
* [Rackspace Networking API](http://docs.rackspace.com/networking/api/v2/cs-devguide/content/ch_preface.html)
|
|
346
|
+
|
|
347
|
+
## Support and Feedback
|
|
348
|
+
|
|
349
|
+
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).
|
|
350
|
+
|
|
351
|
+
For general feedback and support requests, please visit: https://developer.rackspace.com/support.
|